how to take a mean of specific rows

80 visualizzazioni (ultimi 30 giorni)
pruth
pruth il 12 Set 2017
Commentato: KL il 13 Set 2017
hi. i have created a mat file which contains 42 rows and 7 number of columns 42 rows represent 42 months started from January.(3 years 6 months) i want to take a mean of all monthly values all January(rows 1,13,25,37) mean all feb (rows 2,14,26,38) like that for all months
so it would give me 12 rows and 7 columns.
hope you understand. any help will appreciable.

Risposte (2)

Image Analyst
Image Analyst il 12 Set 2017
Assuming you have, or can add, a column with the month number, then simply use grpstats(), if you have the Statistics and Machine Learning Toolbox.
monthlyMeans = grpstats(yourTable, monthColumn);

KL
KL il 12 Set 2017
Modificato: KL il 12 Set 2017
your_variable_mean_1 = mean(your_variable([1 13 25 37],:),1) %row-wise mean
your_variable_mean_2 = mean(your_variable([2 14 26 36],:),1)
your_variable_mean_1 = mean(your_variable([1 13 25 37],:),2) %column-wise mean
your_variable_mean_2 = mean(your_variable([2 14 26 36],:),2)
But this is not the ideal way, you should include month number in a column and create a table. Then you can use month as grouping variable and do your calculations in the proper way.
  2 Commenti
pruth
pruth il 13 Set 2017
hi thanks for replying... how can we use loop for it. I don't want to write a code for each month... hope u understand.
KL
KL il 13 Set 2017
No need for a loop. Do it the right way and it's very simple. So I've created a month number vector and calculating monthly means for all the columns in a new table. Suit it to your needs!
%unnamed is your array of 42x7.
mon_no = repmat((1:12)',4,1); %here goes your month numbers
T = table(mon_no(1:42), unnamed, 'VariableNames',{'mon_no','values'});
mean_T = varfun(@mean,T,'GroupingVariables','mon_no');

Accedi per commentare.

Categorie

Scopri di più su Matrices and Arrays in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by