Matlab:对此循环进行矢量化

时间:2014-04-04 14:37:09

标签: matlab for-loop vector sum

我有一个for循环,需要永远评估(因为它涉及长向量),我希望它可以更快,如果我矢量化,但我不知道如何。

问题是采用大小为M + N-1的向量A并制作大小为N的新向量B,其中第一个元素是A的前M个元素的总和,第二个元素是元素2到M A的+1等等。在for循环中我写

B=zeros(1,N);
for i=1:N
    B(i)=sum(A(i:M+i-1));
end

您是否看到了对此进行矢量化的方法?

1 个答案:

答案 0 :(得分:4)

怎么样?
conv(A, ones(M,1), 'valid');