Clear Filters
Clear Filters

using a for loop to find the mean of a set of data

1 view (last 30 days)
I am trying to use a for loop to find the mean of of the first and eigth row of data, second and ninth row of data, third and tenth row of data, ect ect until I reach the seventh and fourteeth row of data. I have a 84x1 double and so my output i am expecting is a 42x1 double as I have 6 sets of data. I have tried somethign similar to this:
out = splitapply(@mean,TSMo,ceil((1:numel(TSMo))'/7));
My matrix is TSMo. But that averages every 1-7 rows.

Accepted Answer

Matt J
Matt J on 26 Jul 2022
Edited: Matt J on 26 Jul 2022
out = mean( reshape(TSMo,7,2,6) ,2);
out=out(:);
  3 Comments
Kacey Lange
Kacey Lange on 26 Jul 2022
Right now I have six sets of data, but I am currently collecting more. Is there another way I could get this same outcome without changing this lien of code everytime I have new data?
Matt J
Matt J on 26 Jul 2022
Assuming the magic jump interval is always 7, you can do,
out = mean( reshape(TSMo,7,2,[]) ,2);
Otherwise, you must add parameters to your code for the jump interval.

Sign in to comment.

More Answers (1)

David Hill
David Hill on 26 Jul 2022
T=randi(100,84,1);
m=mean(reshape(T,7,[]),2);

Categories

Find more on MATLAB in Help Center and File Exchange

Products


Release

R2019a

Community Treasure Hunt

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

Start Hunting!