鉴于矩阵:
a =
1 1 2 2
1 1 2 2
3 3 4 4
3 3 4 4
Run Code Online (Sandbox Code Playgroud)
我想得到以下四个2x2矩阵:
a1 =
1 1
1 1
a2 =
2 2
2 2
a3 =
3 3
3 3
a4 =
4 4
4 4
Run Code Online (Sandbox Code Playgroud)
从那里,我想取每个矩阵的最大值,然后将结果重新整形为2x2结果矩阵,如下所示:
r =
1 2
3 4
Run Code Online (Sandbox Code Playgroud)
结果最大值相对于其在初始矩阵中的原始位置的位置是重要的.
目前,我正在使用以下代码来完成此任务:
w = 2
S = zeros(size(A, 1)/w);
for i = 1:size(S)
for j = 1:size(S)
Window = A(i*w-1:i*w, j*w-1:j*w);
S(i, j) = max(max(Window));
end
end
Run Code Online (Sandbox Code Playgroud)
这有效,但似乎必须有一种不涉及迭代(矢量化)的方法.
我尝试使用reshape像这样: …