[問題] 迴圈數減少

作者: j0958322080 (Tidus)   2015-12-14 22:54:26
大家好,最近遇到一個二維的問題想用MATLAB跑,
雖然C++已經OK,但是轉到MATLAB好像會因為矩陣過大而運算過久,
目前已經把一些主要迴圈用colon表示,但速度還是過慢,
https://drive.google.com/file/d/0B-jMD726BbgualpvS3ZMazc3Wjg/view
C++(最上面少一個 J 的迴圈)
https://drive.google.com/file/d/0B-jMD726BbguMXFtOWNnb19XUTA/view
matlab,
執行中斷好像主要是在計算H場那邊,希望大家可以給點意見,感謝。
作者: celestialgod (天)   2015-12-14 23:11:00
迴圈停止條件?裡面可以用diff http://pastebin.com/vSUBLpPhez(1:IE,1:JE) = ga(1:IE,1:JE).*dz(1:IE,1:JE);可以直接改成 ez = ga .* dz;剩下看ic, jc是什麼...沒看到全貌也不知道可不可以直接vectorize計算
作者: j0958322080 (Tidus)   2015-12-14 23:56:00
主要迴圈就是上面那個C++檔案的另外nsteps是要算到50,只是我跑兩個就無法了QQ我覺得我應該是有那裡陷入無窮迴圈.......
作者: celestialgod (天)   2015-12-15 01:34:00
while nsteps <= 50 ?ic jc還是看不懂是啥ic, jc看到了 你的while停止條件沒有設定阿= =nsteps = nsteps + 1; ??
作者: j0958322080 (Tidus)   2015-12-15 08:50:00
對應該就是跑到2就結束,只是這樣好像結束不了嗯我應該知道哪裡錯了已經解決了,感謝各位

Links booklink

Contact Us: admin [ a t ] ucptt.com