平均三维矩阵matlab使用重塑

时间:2014-11-26 14:00:34

标签: matlab matrix reshape

我有一个27x38x8760矩阵,其中27x38代表一个网格,一年中有8760个小时。我想为网格做每日平均值,以便我得到的矩阵是27x38x365。 我正在使用reshape进行二维矩阵,但有没有可用于3D? 亲切的问候Matthias

2 个答案:

答案 0 :(得分:1)

假设A是输入矩阵,看看这是否适合你 -

[m,n,r] = size(A)
daily_avg = squeeze(mean(reshape(A,m,n,24,[]),3))

或使用squeeze -

避免permute
daily_avg = mean(permute(reshape(A,m,n,24,[]),[1 2 4 3]),4)

答案 1 :(得分:0)

您也可以使用循环

A = rand([27 38 8760]);
for i = 1 : 24 :8760
    A_avg(:,:,ceil(i / 24)) = mean(A(:,:,i : i + 23),3);
end