[問題] 迴圈數減少

看板MATLAB作者 (Tidus)時間9年前 (2015/12/14 22:54), 9年前編輯推噓0(0016)
留言16則, 2人參與, 最新討論串1/1
大家好,最近遇到一個二維的問題想用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

12/14 23:11, , 1F
迴圈停止條件?
12/14 23:11, 1F

12/14 23:18, , 2F
裡面可以用diff http://pastebin.com/vSUBLpPh
12/14 23:18, 2F

12/14 23:18, , 3F
ez(1:IE,1:JE) = ga(1:IE,1:JE).*dz(1:IE,1:JE);
12/14 23:18, 3F

12/14 23:19, , 4F
可以直接改成 ez = ga .* dz;
12/14 23:19, 4F

12/14 23:19, , 5F
剩下看ic, jc是什麼...
12/14 23:19, 5F

12/14 23:21, , 6F
沒看到全貌也不知道可不可以直接vectorize計算
12/14 23:21, 6F

12/14 23:56, , 7F
主要迴圈就是上面那個C++檔案的
12/14 23:56, 7F
※ 編輯: j0958322080 (140.115.223.6), 12/15/2015 00:05:51

12/15 00:07, , 8F
另外nsteps是要算到50,只是我跑兩個就無法了QQ
12/15 00:07, 8F

12/15 00:33, , 9F
我覺得我應該是有那裡陷入無窮迴圈.......
12/15 00:33, 9F

12/15 01:34, , 10F
while nsteps <= 50 ?
12/15 01:34, 10F

12/15 01:37, , 11F
ic jc還是看不懂是啥
12/15 01:37, 11F

12/15 01:41, , 12F
ic, jc看到了 你的while停止條件沒有設定阿= =
12/15 01:41, 12F

12/15 01:41, , 13F
nsteps = nsteps + 1; ??
12/15 01:41, 13F

12/15 08:50, , 14F
對應該就是跑到2就結束,只是這樣好像結束不了
12/15 08:50, 14F

12/15 08:53, , 15F
嗯我應該知道哪裡錯了
12/15 08:53, 15F

12/15 10:53, , 16F
已經解決了,感謝各位
12/15 10:53, 16F
文章代碼(AID): #1MRjWdLX (MATLAB)
文章代碼(AID): #1MRjWdLX (MATLAB)