0

データを分析するのに問題があります: 行列があるとします

year month flow
72  1   34
72  1   43
72  1   55
72  1   34
72  1   43
72  1   55
72  1   34
72  1   43
72  1   55
72  1   34
72  1   43
72  1   55
72  1   34
72  1   43
72  1   55
72  1   34
72  1   43
72  1   55
72  2   34
72  2   43
72  2   55

今、私は最初の10個の値の平均を取り、次の10個の値などを取りたいと思っています。これで。基本的には、1972 年 1 月 1 日から 1972 年 1 月 10 日 (行 10) まで、および 1972 年 1 月 11 日から 1972 年 1 月 20 日までのように、各月の 10 日間のフロー値の平均を取りたいと思っています。

[unX,~,subs] = unique(D(:,1:2),'rows');
out          = [unX accumarray(subs,D(:,3),[],@nanmean)]; 

しかし、それは1月全体の平均(列2の1つの値)を与えるので、最初の10日間だけ使用したいなど

どんな助けでも大歓迎です。

4

1 に答える 1

1

nanmeanカスタム関数に置き換えることができます

 >> out = [unX accumarray(subs,D(:,3),[],@(x) nanmean( x(1:10)  ) )]; 
于 2013-07-17T07:52:40.497 に答える