矩阵逻辑matlab
Matrix logical matlab
我正在尝试获取 M。为此,Matlab 有必要将 A 的第 1 列与 ^ 的第 1 列相关联,并根据位置 [] 和 1 和 0 构建矩阵 M ^[] 等于 1
A = [1 0 1; 0 1 1; 0 0 1 ];
B = [0 0 1 ; 0 1 0; 1 1 1];
for i = 1:3
for j =1:3
if A(i,j) == BT(i,j) && A(i,j)==1;
Z(i,j) = 1
end
end
end
当您使用“if A(i,j) == BT(i,j) && A(i,j)==;
”时,您是在比较单个元素。相反,您想比较列:
A(:, i)
和 BT(:, j)
.
准确的说,你想要
for i = 1:3
for j = 1:3
M(i,j) = any( A(:,i) & BT(:,j) );
end
end
或
您正在比较 BT 的列和 A 的列。
也就是B的行和A的列,你想看看有没有两个元素都为1的情况,这样就可以比较行中各项的乘积B 和 A 的列。
即M = logical(B * A)
也应该给你想要的输出。
请注意,B 中的数据在您的图像示例和代码中是不同的。
我正在尝试获取 M。为此,Matlab 有必要将 A 的第 1 列与 ^ 的第 1 列相关联,并根据位置 [] 和 1 和 0 构建矩阵 M ^[] 等于 1
A = [1 0 1; 0 1 1; 0 0 1 ];
B = [0 0 1 ; 0 1 0; 1 1 1];
for i = 1:3
for j =1:3
if A(i,j) == BT(i,j) && A(i,j)==1;
Z(i,j) = 1
end
end
end
当您使用“if A(i,j) == BT(i,j) && A(i,j)==;
”时,您是在比较单个元素。相反,您想比较列:
A(:, i)
和 BT(:, j)
.
准确的说,你想要
for i = 1:3
for j = 1:3
M(i,j) = any( A(:,i) & BT(:,j) );
end
end
或
您正在比较 BT 的列和 A 的列。
也就是B的行和A的列,你想看看有没有两个元素都为1的情况,这样就可以比较行中各项的乘积B 和 A 的列。
即M = logical(B * A)
也应该给你想要的输出。
请注意,B 中的数据在您的图像示例和代码中是不同的。