【发布时间】:2020-05-22 20:41:44
【问题描述】:
我有一个循环
for i = 2:K
T(K,i) = ((4^(i-1))*T(K,i-1)-T(K-1,i-1))/(4^(i-1)-1);
end
其中T 是一个二维矩阵(给定行中的第一个元素,并且上面行中的所有元素都已经存在),K 是一个标量。
我试图将这个循环矢量化以使其更快:
i = 2:K;
T(K,i) = ((4.^(i-1)).*T(K,i-1)-T(K-1,i-1))./(4.^(i-1)-1);
它可以编译,但会产生不正确的结果。你能告诉我我哪里出错了吗?
@编辑: 我已经写了这个,但结果仍然是错误的
i = 2:K;
i2 = 1:(K-1);
temp1 = T(K,i2)
temp2 = T(K-1,i2)
T(K,i) = ((4.^(i2)).*temp1-temp2)./(4.^(i2)-1);
【问题讨论】:
-
您的循环会在迭代时更改 T 的值。
-
@bla 所以我应该做一些临时变量来存储原始值?
-
@bla 我已经编辑了问题
标签: matlab optimization vectorization