看板 MATLAB 關於我們 聯絡資訊
大家好,最近遇到一個二維的問題想用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場那邊,希望大家可以給點意見,感謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.115.223.6 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1450104871.A.561.html
celestialgod: 迴圈停止條件? 12/14 23:11
celestialgod: 裡面可以用diff http://pastebin.com/vSUBLpPh 12/14 23:18
celestialgod: ez(1:IE,1:JE) = ga(1:IE,1:JE).*dz(1:IE,1:JE); 12/14 23:18
celestialgod: 可以直接改成 ez = ga .* dz; 12/14 23:19
celestialgod: 剩下看ic, jc是什麼... 12/14 23:19
celestialgod: 沒看到全貌也不知道可不可以直接vectorize計算 12/14 23:21
j0958322080: 主要迴圈就是上面那個C++檔案的 12/14 23:56
※ 編輯: j0958322080 (140.115.223.6), 12/15/2015 00:05:51
j0958322080: 另外nsteps是要算到50,只是我跑兩個就無法了QQ 12/15 00:07
j0958322080: 我覺得我應該是有那裡陷入無窮迴圈....... 12/15 00:33
celestialgod: while nsteps <= 50 ? 12/15 01:34
celestialgod: ic jc還是看不懂是啥 12/15 01:37
celestialgod: ic, jc看到了 你的while停止條件沒有設定阿= = 12/15 01:41
celestialgod: nsteps = nsteps + 1; ?? 12/15 01:41
j0958322080: 對應該就是跑到2就結束,只是這樣好像結束不了 12/15 08:50
j0958322080: 嗯我應該知道哪裡錯了 12/15 08:53
j0958322080: 已經解決了,感謝各位 12/15 10:53