如何在 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
有帮助吗?
这是代码
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
有帮助吗?