如何在MATLAB中使用cumsum获得累积和?

如何在MATLAB中使用cumsum获得累积和?,matlab,for-loop,cumsum,Matlab,For Loop,Cumsum,这是密码 for i = 1 : 5 b = i; a=cumsum(b); end fprintf('%f \n', a); 我希望1+2+3+4+5=15,所以我会在最后打印15 但它的产出是500万 如果i代码“a=cumsum(b)”位于for循环之外,则不会计算它 如何获得我想要的值1+2+3+4+5 谢谢您cumsum执行类似于积分的操作,其中输出的每个元素都是输入向量的该位置(包括)之前所有元素的总和 您的代码不起作用,因为您将一个值传递到cumsum中,并且

这是密码

for i = 1 : 5
    b = i;
    a=cumsum(b);

end

fprintf('%f \n', a);
我希望1+2+3+4+5=15,所以我会在最后打印15

但它的产出是500万

如果i代码“a=cumsum(b)”位于for循环之外,则不会计算它

如何获得我想要的值1+2+3+4+5


谢谢您

cumsum
执行类似于积分的操作,其中输出的每个元素都是输入向量的该位置(包括)之前所有元素的总和

您的代码不起作用,因为您将一个值传递到
cumsum
中,并且没有保存上一个结果的机制,因此您最终只有一个值,即最后一个值-
5


您不需要为此循环,甚至不需要
cumsum
-只需编写
sum(1:5)
,即可获得所需的结果。

这不是
cumsum
的工作方式。它采用数组的累积和,下面的例子可以更好地解释

a = 1:5;
b = cumsum(a); % b = [1, 3, 6, 10, 15]
c = sum(a) % add up all the elements c = 15

那有用吗?

太感谢你了!