Add up a certain number of consecutive values followed by the next values in a row
17 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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
0 comentarios
Respuestas (2)
Wan Ji
el 17 de Ag. de 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 comentarios
Wan Ji
el 17 de Ag. de 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
Awais Saeed
el 17 de Ag. de 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
Ver también
Categorías
Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!