Re: [問題] 把for或是if簡化,使程式最精簡已回收

看板MATLAB作者 (目標:關鍵字115)時間17年前 (2009/02/02 00:11), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
依你的條件可以改成 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
文章代碼(AID): #19XSd9mw (MATLAB)
文章代碼(AID): #19XSd9mw (MATLAB)