我想在两个矩阵中找到两列的交集(请参见下面的示例)。因此要找到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
答案 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