Add up a certain number of consecutive values followed by the next values in a row

22 views (last 30 days)
Good morning,
I am looking for a function that can do the following:
E.g.
A = [1 3 4 0 -1 6]
Result = 4 4 5
Always added up two values from the beginning - then the next two values - and so on.
It would be nice to have the option to say please always add up 3 values, so that the result would be: Result = 8 5
Thanks for your help!
Dennis

Answers (2)

Wan Ji
Wan Ji on 17 Aug 2021
I'll write for you!
function a = everynsum(arr, n)
p = length(arr);
a = sum(reshape(arr,n,p/n)); % in case mod(p,n)=0
end
  2 Comments
Wan Ji
Wan Ji on 17 Aug 2021
By movsum you can do:
A = [1 3 4 0 -1 6];
n = 2; % every 2 sum
B = movsum(A,n);
Result = B(n:n:end)
The result is
Result =
4 4 5

Sign in to comment.


Awais Saeed
Awais Saeed on 17 Aug 2021
clc;clear all;close all
A = [1 3 4 0 -1 6];
n = 2; % sum every n elements
jj = 0;
simdone = true; % to keep while loop running
while (simdone)
jj = jj + 1;
if (size(A,2) == n)
result(jj) = sum(A(1:n));
break % break while loop
end
result(jj) = sum(A(1:n));
A(1:n) = []; % deleting summed elements
end

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!