使用相同的'for'为每个值查找同一数组中的其他3个行中的最大值

问题描述 投票:0回答:1

我在以下数组中针对相同的问题有3个结果:

(0.0 0.0 0.2
 0.8 0.0 1.2
 2.9 1.6 4.3

 0.0 1.5 0.2
 0.0 0.0 0.4
 0.0 2.4 0.3

 0.4 0.3 6.2
 0.9 0.0 0.4
 0.3 0.0 1.2)

例如,一个问题在位置(1,1)(4,1)(7,1)中具有0.0 0.0 0.4的结果。我试图找到最大结果,以便只有3x3数组:

for m=1:3
for n=1:3
sy(m,n)=max(sy(m,n), sy(m+3,n), sy(m+3*2,n));
end
end
sy=imresize(sy, [3 3]);

并且我得到了带有两个要比较的矩阵的MAX,并且一个有效维是不支持。

matlab for-loop resize max
1个回答
2
投票

假设您的矩阵设置如下:

sy =[0.0 0.0 0.2; 0.8 0.0 1.2; 2.9 1.6 4.3; 0.0 1.5 0.2 ;...
    0.0 0.0 0.4; 0.0 2.4 0.3; 0.4 0.3 6.2; 0.9 0.0 0.4; 0.3 0.0 1.2];

然后我想:

sy = max(reshape(sy',3,3,3),[],3)';

达到您想要的结果。

© www.soinside.com 2019 - 2024. All rights reserved.