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

How do I get a cumulative sum using cumsum in MATLAB?

这是代码

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

end

fprintf('%f \n', a);

我预计 1 + 2 + 3 + 4 + 5 = 15 所以我会在最后打印 15。

但它输出 5.000000。

如果我在 for 循环外编写 "a = cumsum (b)",将不会被计算

如何得到我想要的值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

有帮助吗?