Re: [問題] 把for或是if簡化,使程式最精簡已回收
依你的條件可以改成
if(a(xx,yy)>b(xx,yy)) & (c(xx,yy)~=d(xx,yy))
e(xx,yy) = f(xx,yy);
else
e(xx,yy) = 0.5;
end
但用陣列來看
可以變成
n=100;
a=rand(n); b=rand(n); c=rand(n); d=rand(n); f=rand(n);
temp = (a>b) & (c~=d);
e = temp.*f;
e = e+(~temp*0.5);
※ 引述《aada (aada)》之銘言:
: 大家好,小弟有個小疑惑,
: n=100;
: a=rand(n); b=rand(n); c=rand(n); d=rand(n); e=zeros(n); f=rand(n);
: for xx=1:1:n
: for yy=1:1:n
: if (a(xx,yy)-b(xx,yy) > 0 ) & (c(xx,yy)-d(xx,yy) > 0 )
: e(xx,yy)= f(xx,yy);
: elseif (a(xx,yy)-b(xx,yy) > 0 ) & (c(xx,yy)-d(xx,yy) < 0 )
: e(xx,yy)= f(xx,yy);
: else
: e(xx,yy)= 0.5;
: end
: end
: end
: 我想把上面那堆程式,設法縮短,但好像很困難
: 這樣是最精簡了嗎?
: 謝謝B大,假如我if那邊改成矩陣,使否還有辦法縮減呢
: 感恩
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.86.17.59
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章