闰年意味着在matlab中

时间:2013-11-28 09:56:30

标签: matlab mean leap-year

早上好。我有一个14610行和16列的矩阵(eout)。 14610行代表01-01-1960和31-12-2000之间的每一天中的一天。

我需要的是一个40行16列的新矩阵,每年都有一个平均值。 类似于连续365行的意思。 我遇到的问题是每4年闰年。

解决此问题的建议?

1 个答案:

答案 0 :(得分: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);

(后一部分未经测试......)