matlab中的闰年平均值

matlab中的闰年平均值,matlab,mean,leap-year,Matlab,Mean,Leap Year,早上好。我有一个14610行16列的矩阵(eout)。 14610行表示1960年1月1日至2000年12月31日期间的每一天 我需要的是一个新的矩阵,有40行16列,每年的平均值。 连续365行的平均值。 我的问题是每4年闰年 解决此问题的建议?首先,获取给定年份的天数: function n = ndays(year) tmp = repmat([1,1,0,0,0],numel(year),1); n = datenum([year(:)+1,tmp])-datenum([

早上好。我有一个14610行16列的矩阵(eout)。 14610行表示1960年1月1日至2000年12月31日期间的每一天

我需要的是一个新的矩阵,有40行16列,每年的平均值。 连续365行的平均值。 我的问题是每4年闰年


解决此问题的建议?

首先,获取给定年份的天数:

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);

(后一部分未经测试.)

使用matlabs日期函数来相应地收集它们应该不难。您应该能够使用
accumarray
巧妙地完成这项工作。你能发布你的数据的一小部分吗?这样我就可以看到你是如何存储它的了。我已经解决了我的问题,所以没有必要发布我的数据集。谢谢你的关心!这真的很有帮助!