Calculate mean from daily to monthly values.

1 vue (au cours des 30 derniers jours)
lreplo
lreplo le 21 Juil 2015
Commenté : lreplo le 22 Juil 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
  1 commentaire
bio lim
bio lim le 21 Juil 2015
Modifié(e) : bio lim le 21 Juil 2015
what is swh?

Connectez-vous pour commenter.

Réponse acceptée

Azzi Abdelmalek
Azzi Abdelmalek le 21 Juil 2015
Modifié(e) : Azzi Abdelmalek le 21 Juil 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 commentaires
Azzi Abdelmalek
Azzi Abdelmalek le 21 Juil 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 le 22 Juil 2015
Thank you! Worked perfectly.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur MATLAB dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by