Calculate mean from daily to monthly values.

1 visualización (últimos 30 días)
lreplo
lreplo el 21 de Jul. de 2015
Comentada: lreplo el 22 de Jul. de 2015
Below is the code I have so far. It only spits out year 2014 month 12 mean. I need monthly means for all years. So there should be 84 values.
[y,m,d] = datevec(dn);
for j = [2008:2014]
for i= [1:12]
idx=find(y==j&m==i);
meandata1=mean(swh(idx));
meandata(84,:)=[84 meandata1];
end
end
Thank you in advance

Respuesta aceptada

Azzi Abdelmalek
Azzi Abdelmalek el 21 de Jul. de 2015
Editada: Azzi Abdelmalek el 21 de Jul. de 2015
dn=datenum('01-01-2008','dd-mm-yyyy'):datenum('31-12-2014','dd-mm-yyyy')
swh=randi(10,numel(dn),1)
[y,m,d] = datevec(dn);
a=[y' m' d']
[ii,jj,kk]=unique(a(:,1:2),'rows')
out=accumarray(kk,(1:numel(kk))',[],@(x) mean(swh(x)))
  2 comentarios
Azzi Abdelmalek
Azzi Abdelmalek el 21 de Jul. de 2015
If you want to correct your for loop
k=0;
for j = [2008:2014]
for i= [1:12]
k=k+1;
idx=find(y==j&m==i);
out1(k)=mean(swh(idx));
end
end
lreplo
lreplo el 22 de Jul. de 2015
Thank you! Worked perfectly.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Clocks and Timers 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