Re: [請益]for迴圈內差法過慢

作者: sunev (Veritas)   2017-06-24 13:08:04
※ 引述《sunev (Veritas)》之銘言:
: 標題: Re: [請益]for迴圈內差法過慢
: 時間: Fri Jun 23 18:18:39 2017
: ※ 引述《s455164 (夢想家)》之銘言:
: : 有點卡關..
: : 我有三個陣列:
: : 三維陣列A(100,100,51)、二維陣列B(100,100)、一維陣列C(1,51)
: : 其中A陣列的第三個維度是與C互相呼應的(A(:,:,1)是對應C(1,1))
: : 想要利用B陣列與C陣列之間的比例關係去對A陣列
: : 內插出一個新的二維陣列A'(100,100)
: : 我自己的寫法是這樣的
: : A' = zeros(100,100);
: : for i = 1:100
: : for j = 1:100
: : for k = 1:51-1
: : if ((B(i,j)>=C(k)) && (B(i,j)<=C(k+1))) || (((B(i,j)>=C(k)) && (B(i,j)>=C(k+1)
: : A'(i,j) = (A(i,j,k+1)-A(i,j,k)) * (B(i,j)-C(k))/(C(k+1)-C(k)) + A(i,j,k);
: : elseif (B(i,j) <= C(k)) && (B(i,j) < = C(k+1))
: : A'(i,j) = A(i,j,k+1) - (A(i,j,k+1)-A(i,j,k)) * (C(k+1)-B(i,j))/(C(k+1)-C(k))
: : end
: : end
: : end
: : end
: : 可是發現計算時間真的太長了,要花到3個多小時...不知道可以如何改善
: : 想請教如何解決,麻煩大家了
:
作者: sunev (Veritas)   2017-06-24 13:20:00
如果C是等間隔,k就可以用算的,應可再加速
作者: s455164 (夢想家)   2017-06-24 15:57:00
好的 C是等間隔沒錯那我試看看
作者: sunev (Veritas)   2017-06-25 19:30:00
等間隔的話,應該可以完全避掉迴圈

Links booklink

Contact Us: admin [ a t ] ucptt.com