おはよう。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);
(後半部分はテストされていません..)