如何将MATLAB中的各个元素相加

时间:2017-08-14 20:00:48

标签: matlab

假设我有一个行矩阵[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

我该如何获得它们?

1 个答案:

答案 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

最佳,