从矩阵B中的矩阵A删除所有行

0 arrays matlab matrix

我在MATLAB中有一个A具有RGB值的矩阵,可以说

A = [1 2 3;
     4 5 6;
     7 8 9]
Run Code Online (Sandbox Code Playgroud)

矩阵B可以说

B = [1 2 3;
     2 2 2]
Run Code Online (Sandbox Code Playgroud)

现在我想删除的所有行BA

结果将是:

A* = [4 5 6;
      7 8 9]
Run Code Online (Sandbox Code Playgroud)

如何在MATLAB中有效地完成此任务?

小智 5

要查找B中存在A的哪些行:

rowmatches = ismember(A,B,'rows')
Run Code Online (Sandbox Code Playgroud)

上面给出了二进制矢量,其长度为A中行数的长度。然后,您可以查询不在B中的A行的子集:

output = A(~rowmatches,:)
Run Code Online (Sandbox Code Playgroud)