本文介绍了如何在不进行MATLAB排序的情况下从A中删除集合A和B的交集?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

两个矩阵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的公共行.

All rows of matrix B are members of matrix A. I wish to delete the common rows of A and B from A without sorting.

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

I have tried setdiff() but this sorts the output.

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

For my particular problem (atomic coordinates in protein structures) maintaining the ordered integrity of the rows is important.

推荐答案

使用 ISMEMBER :

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

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

这篇关于如何在不进行MATLAB排序的情况下从A中删除集合A和B的交集?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-05 09:43