我有一个大小为100000x128的矩阵A. 对于这个矩阵的每一行,我需要计算列的平均值1:16,17:32 ...... 98:113。 我这样做的方式是使用这样的for循环:
n = 8; % number of windows
win_size = 128/n;
for i = 1 : length(A)
PAA(i,:) = [mean(reshape(A(i,:),win_size,n))];
end
我有机会在没有循环的情况下改善这一点吗? 谢谢你的帮助。
答案 0 :(得分:1)
您可以使用reshape为块创建另一个维度:
y=reshape(x,size(x,1),win_size,size(x,2)/win_size)
要获得每个块的平均值,请使用mean(y,2)
答案 1 :(得分:0)
>> A = randn(100000, 128);
>> Amean = reshape(mean(reshape(A',16,100000)), 8, 100000)';