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

标签 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]

矩阵 B 的所有行都是矩阵 A 的成员。我想从 A 中删除 A 和 B 的公共(public)行而不进行排序。

我试过 setdiff() 但这对输出进行了排序。

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

最佳答案

使用ISMEMBER :

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

%# remove those rows
A(commonRows,:) = [];

关于sorting - 如何在 MATLAB 中不排序的情况下从 A 中删除集合 A 和 B 的交集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3467670/

相关文章:

Python:对列表列表进行排序

arrays - 对数组排序两次,保存第一次排序并追加第二次排序

python - 如何在 Python 中不使用循环和 join() 将列表转换为字符串

c# - 有没有办法对列表中的 Color 元素进行排序(c#)?

python - Python 中的 fitdist 和 histfit 相当于什么?

java - 带索引的列表减法

MATLAB 格式化矩阵

c - 如何使用 sprintf 在特定位置写入 C 中的 char 数组?

Python 设置 : difference() vs symmetric_difference()