Calculate mean from daily to monthly values.

2 ビュー (過去 30 日間)
lreplo
lreplo 2015 年 7 月 21 日
コメント済み: lreplo 2015 年 7 月 22 日
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 件のコメント
bio lim
bio lim 2015 年 7 月 21 日
編集済み: bio lim 2015 年 7 月 21 日
what is swh?

サインインしてコメントする。

採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2015 年 7 月 21 日
編集済み: Azzi Abdelmalek 2015 年 7 月 21 日
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 件のコメント
Azzi Abdelmalek
Azzi Abdelmalek 2015 年 7 月 21 日
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 2015 年 7 月 22 日
Thank you! Worked perfectly.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMATLAB についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by