Sum of previous 5 numbers

5 views (last 30 days)
Gokhan Kayan
Gokhan Kayan on 23 Oct 2021
Commented: Gokhan Kayan on 23 Oct 2021
A=[2 3 4 5 6 7 8 9 10 8 5];
I want to calculate sum of 5 previous values for A(i)
so my new matrix should be like this
B=[0 2 5 9 14 20 25 30 35 40 42 ];
As there is no previous 5 value before A(1)=2 so B(1)=0, There is one value before A(2) and it is A(1). Therefore B(2)=A(1)=2. There are two values before A(3) so B(3)=2+3=5. For A(9)=10, previous 5 values are 5 + 6 + 7+ 8+ 9 so B(9)=35. How can I do this summation. Thanks for the help.

Accepted Answer

Walter Roberson
Walter Roberson on 23 Oct 2021
Edited: Walter Roberson on 23 Oct 2021
A=[2 3 4 5 6 7 8 9 10 8 5];
B=[0 2 5 9 14 20 25 30 35 40 42 ];
N = 5;
C = movsum([0 A(1:end-1)], [(N-1) 0])
C = 1×11
0 2 5 9 14 20 25 30 35 40 42
isequal(C, B)
ans = logical
1
  2 Comments
Walter Roberson
Walter Roberson on 23 Oct 2021
Edited: Walter Roberson on 23 Oct 2021
A=[2 3 4 5 6 7 8 9 10 8 5];
B=[0 2 5 9 14 20 25 30 35 40 42 ];
N = 5;
C = conv(A, [0, ones(1,N)]);
C = C(1:end-N)
C = 1×11
0 2 5 9 14 20 25 30 35 40 42
isequal(C, B)
ans = logical
1
Gokhan Kayan
Gokhan Kayan on 23 Oct 2021
Thanks for the reply Walter Robenson, this is what I exactly want :)

Sign in to comment.

More Answers (0)

Categories

Find more on MATLAB in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!