如何在没有在MATLAB中排序的情况下从A中删除集合A和B的交集?

Dar*_*ick 6 sorting matlab set-difference

两个矩阵,A和B:

A = [1 2 3
     9 7 5
     4 9 4
     1 4 7]

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

矩阵B中的所有行矩阵A的成员我想删除一个从A共同行和B不排序.

我尝试过setdiff(),但这会对输出进行排序.

对于我的特定问题(蛋白质结构中的原子坐标),保持行的有序完整性很重要.

Jon*_*nas 10

使用ISMEMBER:

%# find rows in A that are also in B
commonRows = ismember(A,B,'rows');

%# remove those rows
A(commonRows,:) = [];
Run Code Online (Sandbox Code Playgroud)

  • 我喜欢`ismember`!我到处找到它的用途! (3认同)