我有一个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‘循环。
你能告诉我该怎么做吗?
发布于 2015-06-16 21:25:29
您可以通过使用函数cumsum来做到这一点。
A = [1 2 3 4 5 6];
C = cumsum(A);
out = [0 C(1:end-1)]现在out是:[0 1 3 6 10 15]
发布于 2015-06-16 21:33:40
如果只需要B的一个值,则可以使用sum(A(1:n))计算该值。如果你需要计算所有的3000值的B,我认为你会做好一个for循环。如果使用以下方法,则3000次迭代并不多:
A = 1:3000;
B = zeros(1, 3000);
B(1) = A(1);
for i = 2:3000
B(i) = B(i-1) + A(i);
endhttps://stackoverflow.com/questions/30878413
复制相似问题