我有像X这样的4 * 4矩阵和像A这样的2 * 2矩阵。
X= x11 x21 x31 x41 A= 1 0
x12 x22 x32 x42 0 1
x13 x23 x33 x43
x14 x24 x34 x44
我将X分为4个2 * 2块,代码如下:
Y=X;
sx=size(X);
mask=logical([1 1;1 1]);
for i=1:2:sx(1)
for j=1:2:sx(2)
px=X(i:i+1,j:j+1);
end
end
现在我必须将矩阵A的每个元素与矩阵X的相应块进行比较。
If the first element of matrix A is zero, then x11 should be lower than x22.
if not, I should swap them with each other.
If the first element of matrix A is one ,then x11 should be greater than x22.
if not,I should swap them with each other.
答案 0 :(得分:0)
我认为您应该能够在循环中添加此代码。
if A(1,1)==0 & px(2,2)>px(1,1)
[px(1,1), px(2,2)] = deal(px(2,2),px(1,1));
elseif A(1,1)==1 & px(2,2)<px(1,1)
[px(1,1), px(2,2)] = deal(px(2,2),px(1,1));
end
PS。我认为有更好的方法从较大的子矩阵中选择一个子矩阵,但现在无法想到它。