2013-11-28 133 views
0

早上好。我有一個有14610行和16列的矩陣(eout)。 14610行代表01-01-1960和31-12-2000之間的每一天。matlab中的閏年平均值

我需要的是一個40行16列的新矩陣,每年的平均值。 連續的意思是365行。 我遇到的問題是每4年的閏年。

建議解決這個問題?

+0

它不應該與matlabs日期函數很難據此收集它們。 – bdecaf

+1

你應該可以用'accumarray'很好地整齊地做它。你可以發佈一小部分數據,這樣我可以看到你是如何存儲它的? – Dan

+0

我已經解決了我的問題,所以不需要發佈我的數據集。 感謝您的關注!這真的很有幫助! – rochinha44

回答

1

一開始,得到的天數給定年份:

function n = ndays(year) 
    tmp = repmat([1,1,0,0,0],numel(year),1); 
    n = datenum([year(:)+1,tmp])-datenum([year(:), tmp]); 
end 

有了這個,你可以如收集行與mat2cell

rows_per_year = ndays(1960:2000); 
chunks = mat2cell(yourInputMatrix, rows_per_year, size(yourInputMatrix,2)); 
means = cellfun(@(x) mean(x,1), chunks); 

(後者部分來自未經測試..)