MATLAB中双矩阵的n-1列之和

时间:2015-06-16 21:19:53

标签: matlab matrix

我有一个1 * 3000双矩阵。我正在做一些计算,我需要计算每一步中n-1列的总和。

例如,如果我有这个矩阵:

A = [1 2 3 4 5 6]

我正在寻找的总和应该是这样的:

B = [0 1 1+2 1+2+3 1+2+3+4 1+2+3+4+5] = [0 1 3 6 10 15]

意思是,在每一步中,我们计算矩阵的n-1列的总和,而n从1开始到矩阵的列数。

由于列数为3000,我不能使用'for'循环。

请告诉我该怎么办?

2 个答案:

答案 0 :(得分:2)

您可以使用函数cumsum

来实现
A = [1 2 3 4 5 6];
C = cumsum(A);
out = [0 C(1:end-1)]

现在out是:[0 1 3 6 10 15]

答案 1 :(得分:0)

如果您只需要一个B值,则可以使用sum(A(1:n))来计算该值。如果你需要计算B的所有3000个值,我认为你会用for循环做好。如果你使用它,3000次迭代并不多:

A = 1:3000;
B = zeros(1, 3000);
B(1) = A(1);
for i = 2:3000
    B(i) = B(i-1) + A(i);
end