2013-07-17 84 views
0

我有一些問題,來分析我的數據: 假設有一個矩陣採取移動平均利用MATLAB

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天開始計算流量值的平均值,例如從1,1972到1,102(第10行),並且比1月19日到1972年1月20日更長,因爲我嘗試了

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

但它給全揚(1個值列2)平均我想用它僅前十天,然後等

任何幫助將不勝感激。

+1

相關的問題:?如何計算在NX3矢量每100個標準偏差(http://stackoverflow.com/questions/17673073 /如何計算標準偏差爲每100點在一個nx3向量),只需將100改爲10,並使用「平均」而不是「標準」。 –

+0

保留您的代碼,但不是在第2列(即月)中創建一個只在每10個值後遞增的新列?類似'ceil(0:0.1:5)' – Dan

+0

[MATLAB Average Every 5 Elements]的可能重複(http://stackoverflow.com/questions/17496146/matlab-average-every-5-elements) – bla

回答

1

您可以通過自定義函數替換nanmean

>> out = [unX accumarray(subs,D(:,3),[],@(x) nanmean(x(1:10) ))];