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