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 个值,依此类推。在这。基本上我想取每个月 10 天的平均流量值,比如从 1972 年 1 月 1 日到 1 月 10 日、72 日(第 10 行),而不是 1972 年 1 月 11 日到 1972 年 1 月 20 日。

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

但是因为它给出了整个 jan 的平均值(第 2 列中的 1 个值)我只想在前十天使用它,然后以此类推

任何帮助将不胜感激。

4

1 回答 1

1

您可以用nanmean自定义函数替换

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