MATLAB将每日数据的3D数组切割为月度细分

时间:2013-06-21 15:42:09

标签: matlab multidimensional-array average mean

我有一个1437x159x1253的大型矩阵(让我们称它为A)每日海冰数据超过2年。我需要编写一个代码,该代码从每个月获取每日数据并确实表示(A,3)。所以基本上,1253是天数。如果我从1月份开始,我需要做出前31天的平均值(A,3),然后是2月份的平均值(A,3),接下来的28天或29天。因为这些日子在31到30之间交替(2月28日或29日),我不知道如何编写代码来执行此操作。我可以手动完成,但这需要一段时间。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用布尔值初始化包含每月天数的数组Mon = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],以检查它是否为闰年(设置Mon(2) = 29)。天数将帮助您适当地索引每个月,使用如下循环:

index=1;
for i=1:12
  average = mean(A(:,:,index:(index+Mon(i)-1),3);
  index = index+M(i);     % Starting location of the next month
end