簡體   English   中英

MATLAB將每日數據的3D數組分割為每月細分

[英]MATLAB Cut 3D array of daily data into monthly segments

我有一個1437x159x1253大型矩陣(我們稱之為A),用於2年多一點的每日海冰數據。 我需要編寫一個代碼,獲取每個月的每日數據,並在其上表示(A,3)。 因此,基本上,1253是天數。 如果我從一月開始,則需要做前31天的平均值(A,3),然后是接下來28或29天的二月的平均值(A,3)。 由於日期在31到30(2月為28或29)之間交替,因此我不知道如何編寫代碼來執行此操作。 我可以手動完成,但這需要一段時間。

謝謝!

您可以初始化一個包含每個月Mon = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]數的數組, Mon = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]使用布爾值檢查是否為leap年(設置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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM