假设我有一个行矩阵[a1 a2 a3 a4 .. an]
,我希望在MATLAB中实现以下各项
1) 1+a1
2) 1+a1+a2
3) 1+a1+a2+a3
4) 1+a1+a2+a3+a4
....
1+a1+a2+...+an
我该如何获得它们?
答案 0 :(得分:1)
这是cumsum
功能的目的。如果A
是包含元素[a1 a2 a3 .. an]
的向量,那么
B = cumsum([1 A]);
包含您要搜索的字词。另一种可能性是
B = 1 + cumsum(A);
修改强>
如果您不想使用cumsum
之类的内置函数,那么更简单的方法是执行for
循环:
% Consider preallocation for speed
B = NaN(numel(A),1);
% Assign the first element
B(1) = 1 + A(1);
% The loop
for i = 2:numel(A)
B(i) = B(i-1) + A(i);
end
或者,没有预先分配:
B = 1 + A(1);
for i = 2:numel(A)
B(end+1) = B(end) + A(i);
end
最佳,