Azzera filtri
Azzera filtri

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

1 visualizzazione (ultimi 30 giorni)
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.

Risposta accettata

Matt J
Matt J il 26 Lug 2022
Modificato: Matt J il 26 Lug 2022
out = mean( reshape(TSMo,7,2,6) ,2);
out=out(:);
  3 Commenti
Kacey Lange
Kacey Lange il 26 Lug 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 il 26 Lug 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.

Accedi per commentare.

Più risposte (1)

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

Categorie

Scopri di più su MATLAB in Help Center e File Exchange

Prodotti


Release

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by