【问题标题】:How do I get a cumulative sum using cumsum in MATLAB?如何在 MATLAB 中使用 cumsum 获得累积和?
【发布时间】:2018-05-03 09:26:47
【问题描述】:

这是代码

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?

谢谢你

【问题讨论】:

    标签: matlab for-loop cumsum


    【解决方案1】:

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

    您的代码不起作用,因为您将单个值传递给 cumsum 并且没有保存先前结果的机制,因此您最终只有一个值,即最后一个值 - @987654323 @。

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

    【讨论】:

    • 非常感谢您!
    【解决方案2】:

    cumsum 不是这样工作的。它采用数组的累积和,下面的示例可能会更好地解释

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

    这有帮助吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-26
      • 1970-01-01
      • 2011-03-07
      • 1970-01-01
      • 2022-01-13
      • 2021-06-04
      • 1970-01-01
      相关资源
      最近更新 更多