每个矩阵中有两列的交集

时间:2018-07-26 15:01:10

标签: arrays matlab matrix intersection

我想在两个矩阵中找到两列的交集(请参见下面的示例)。因此要找到A和B相交的位置-在这种情况下为位置3和5。

到目前为止,我的解决方案是将两列合并为一列,然后在一个字符串上使用intersect函数。有更优雅的解决方案吗?

A = [1,1; 1,3; 1,4; 2,1; 2,5; 3,1]

A =

 1     1
 1     3
 1     4
 2     1
 2     5
 3     1

B = [2,5; 1,4]

B =

 2     5
 1     4

1 个答案:

答案 0 :(得分:2)

您可以避免合并列。使用相交时,可以使用rows选项。

A = [1,1;1,3;1,4;2,1;2,5;3,1]
B = [2,5;1,4]
[C,ia,ib] = intersect(B,A,'rows');

>>ib
     3
     5

此外,如果您不希望对相交结果进行排序,则可以使用stable选项。

 [C,ia,ib] = intersect(B,A,'rows','stable');
 >>ib
     5
     3
相关问题