矩阵逻辑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 中的数据在您的图像示例和代码中是不同的。