如何在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
那有用吗?太感谢你了!