Re: [問題] 怎麼讓迴圈的執行速度最佳化?已回收

看板MATLAB作者 (123456)時間14年前 (2010/07/25 00:24), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《Surtur (垣圻 <( ̄︶ ̄)>)》之銘言: : 最近MATLAB做模擬遇到瓶頸, : 只要i超過120, : 按[Run]之後, : 就會一直呈現busy狀態, : 以下是程式碼的一部份。 : 是不是從if的部份要修改,讓程式執行更快? : for i=1:100 : W=W+mu*Xprime*e; : x=y1+e; % reference signal : input(i)=x; : imf=emd(input); 這個函數是自己寫的嗎? : [p,q]=size(imf); : imf{1}=0; 這邊下麵改成switch 會比 if if if if 快非常多 : if q==1 : out=imf{1}; : else if q==2 : out=imf{1}+imf{2}; : else if q==3 : out=imf{1}+imf{2}+imf{3}; : else if q>3 : out=imf{1}+imf{2}+imf{3}+imf{4}; : end : end : end : end : ..... 但看來是可以把for 拿掉 這樣就會快更多 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.193.84.89

07/26 09:44, , 1F
謝謝指點:-)
07/26 09:44, 1F
文章代碼(AID): #1CInExPg (MATLAB)
文章代碼(AID): #1CInExPg (MATLAB)