2016-07-21 368 views
1

數據matlab中如何平均時間序列對象的平均值?

金融時間序列對象(FINTS)與下列:

日期時間數

我對每個小時2年每一天的數據。

問題

我想有平均每小時在過去的一年。換句話說,我想在一天中有24小時的時間欄,相應的數字應該是同一小時所有過去的日子的平均值。

我試過

我試着看perav,tsmovavg功能和accumarray功能。任何其他想法?我是Matlab新手,所以我甚至不知道如何循環這個時間序列數據。儘管考慮到它是一個使用時間序列特定函數的時間序列對象,但必須有某種方式來做到這一點。

編輯:我想把它留在一個時間序列理想。

回答

1

假設你的數據已被存儲在一個矩陣F,「日期」是年,「時代」是小時,你可以用這個for循環期間特定年份y不同的日子要打印的同時,平均:

for t=unique(F(:,2)) 
    mean(F(F(:,2)==t & F(:,1)==y) ,3) 
end 

說明: 通過使用unique您可以檢索不同的「時間」值。 mean中的兩個條件確保在特定年份具有相同「時間」的含義。

+0

這不起作用。我說我的數據是專門用於財務時間序列格式。我試着像這樣轉換它F = fts2mat(data,1),並且它丟失了時間分量。然後我得到以下錯誤:矩陣尺寸必須同意。平均(F(F(:,2)== T&F(:,1)== Y),3) – pr338

+0

F是什麼大小?什麼是大小數據? –