我感谢有关如何矢量化以下 for 循环(matlab)的建议:
summ=0;
for i=1:lasti
summ=summ+abs(newTS(m+i*k)-newTS(m+(i-1)*k));
end
向量化是指使用矩阵运算而不是 for 循环。我听说矢量化通常比 for 循环更有效、更快。
编辑:实际上我真正想要矢量化的内容如下。我把它包括在内,以防一些勇敢的灵魂想试一试……
for j=1:length(kvec)
k=kvec(j);
for m=1:k
lasti=floor((N-m)/k);
Nfact=(N-1)/(lasti*k);
summ=0;
for i=1:lasti
summ=summ+abs(newTS(m+i*k)-newTS(m+(i-1)*k));
end
L(m,j)=(summ*Nfact)/k;
%Avg over m
AvgL(j)=mean(L(:,j));
end
end