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

2 ビュー (過去 30 日間)
Dennis Annutsch
Dennis Annutsch 2021 年 8 月 17 日
コメント済み: Dennis Annutsch 2021 年 8 月 17 日
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

回答 (2 件)

Wan Ji
Wan Ji 2021 年 8 月 17 日
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 件のコメント
Dennis Annutsch
Dennis Annutsch 2021 年 8 月 17 日
Thank you very much!! This works exactly as I imagined. I wish you all the best!

サインインしてコメントする。


Awais Saeed
Awais Saeed 2021 年 8 月 17 日
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

製品


リリース

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by