【发布时间】:2014-07-01 08:30:44
【问题描述】:
我正在尝试编写一个函数,将每个元素的前 n 个元素相加
v = [1 1 1 1 1 1];
res = sumLastN(v,3);
res = [0 0 3 3 3 3];
到目前为止,我已经编写了以下函数
function [res] = sumLastN(vec,ppts)
if iscolumn(vec)~=1
error('First argument must be a column vector')
end
sz_x = size(vec,1);
res = zeros(sz_x,1);
if sz_x > ppts
for jj = 1:ppts
res(ppts:end,1) = res(ppts:end,1) + ...
vec(jj:end-ppts+jj,1);
end
% for jj = ppts:sz_x
% res(jj,1) = sum(vec(jj-ppts+1:jj,1));
% end
end
end
大约有 2000 个向量,大约 100 万个元素,所以我想知道是否有人可以给我任何关于如何加快函数速度的建议。
【问题讨论】:
标签: matlab optimization sum