0
我想要一個大矩陣並取其中所有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
是否有意識的相鄰塊的重疊? '1:5'是5個元素,而'5:10'是6個元素並且與前一個塊重疊。也許你正在尋找'1:5','6:10','11:15' ......在這種情況下,你應該使用'1:5:4161'而不是'1:4:4161' –