我想要一个大矩阵并取其中所有5x5网格的平均值。MATLAB平均每5个元素
矩阵是245x85x1255.I将矩阵重塑为5x4165x1255大小(z维并不重要),我想要取每行中元素1:5,5:10,10:15等的平均值。然后,结果矩阵,我想平均五列。然后我会调整它的原始形状(但当然小)。
我不必这样做。我只需要采取一个5x5的网格和平均所有的点。然后我把下一个5x5的网格放在它旁边并且平均所有这些点。
以下是我做的第一个5×5格:
A = data_SpecificArea(:,1:5,:);
B = mean(A,2);
C = mean(B,1);
**下面是使用blockproc
% Change dataAll_SpecificArea to a 1x1 degree grid (5x5 block averaging)
fun = @(block_struct) mean(block_struct.data);
A = blockproc(dataAll_SpecificArea,[5 1],fun); % Size goes from 245x85x1255 to 49x85x1255
B = blockproc(A,[1 5],fun); % Size is 49x17x1255
+0
是否有意识的相邻块的重叠? '1:5'是5个元素,而'5:10'是6个元素并且与前一个块重叠。也许你正在寻找'1:5','6:10','11:15' ......在这种情况下,你应该使用'1:5:4161'而不是'1:4:4161' –