Calculate mean monthly from daily values

5 visualizaciones (últimos 30 días)
Angela Bowman
Angela Bowman el 26 de En. de 2012
Comentada: frankovaT el 27 de Sept. de 2018
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!

Respuesta aceptada

the cyclist
the cyclist el 26 de En. de 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.

Más respuestas (1)

Kostas
Kostas el 26 de En. de 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 comentarios
Faisal Amri
Faisal Amri el 23 de Nov. de 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 el 27 de Sept. de 2018
Unfortunately this is not working either

Iniciar sesión para comentar.

Categorías

Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by