Azzera filtri
Azzera filtri

Calculate mean monthly from daily values

7 visualizzazioni (ultimi 30 giorni)
I have a file that is 22281 rows x 5 col. This represents 60 years of daily values. I need to calculate mean monthly values for all years and extract, say, only May, to a new file. The resulting output will be 60 values for mean monthly data for May. This will be to compare col4 to col5 (below).
col1=year
col2=month
col3=day
col4=data1
col5=data2
Please help!

Risposta accettata

the cyclist
the cyclist il 26 Gen 2012
Take a look at the solutions to this question: http://www.mathworks.com/matlabcentral/answers/27088-sort-data-by-day-of-year. You might find some ideas there that help you.

Più risposte (1)

Kostas
Kostas il 26 Gen 2012
maybe smt like this could work
suppose you have a matrix called data(22281,5) months are stored in second column
for i=1:12 %loop over months
idx=find(data(:,2)==i); % find all indeces for the specific month
meandata1=mean(idx,4);
meandata2=mean(idx,5);
meandata(i,:)=[i meandata1 meandata2]; %store in a new matrix the mean values per months
end
now you can just find and print in a file the values for the 5th month (May)
  5 Commenti
Faisal Amri
Faisal Amri il 23 Nov 2017
I Tried to modify, this what I got and it works for me though I still working to make it better. Hope this helps
k=1
%Calculating Monthly Average
for j=1992:2012 %Years Looping
for i=1:12 %Months Looping
idx=find((Data(:,1)==i) & (Data(:,3)==j)); %Find all indeces for the specific month
meandata1=mean(Data(idx,4),1);
Monthly_Ave(k,:)=[i,j,meandata1;]; %Store in a new matrix the mean values per month
k=k+1;
end
end
frankovaT
frankovaT il 27 Set 2018
Unfortunately this is not working either

Accedi per commentare.

Categorie

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

Community Treasure Hunt

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

Start Hunting!

Translated by