This is code
for i = 1 : 5
b = i;
a=cumsum(b);
end
fprintf(\'%f \\n\', a);
I expected 1 + 2 + 3 + 4 + 5 = 15 so I would print 15 at t
This is not how cumsum
works. It takes the cumulative sum of an array the example below may explain better
a = 1:5;
b = cumsum(a); % b = [1, 3, 6, 10, 15]
c = sum(a) % add up all the elements c = 15
Does that help?
cumsum
performs something like integration, where each element of the output is the sum of all elements up to that position (including) of the input vector.
Your code doesn't work because you pass a single value into cumsum
and there is no mechanism by which the previous result is saved, so you end up having only a single value, which is the last one - 5
.
You don't need a loop for this, nor even cumsum
- just write sum(1:5)
to get the desired result.