每个矩阵中有两列的交集
Intersection with two columns in each matrix
我想找到两个矩阵中两列的交集(请参见下面的示例)。所以要找到 A 和 B 相交的位置——在本例中是位置 3 和 5。
到目前为止,我的解决方案是将两列合并为一列,然后在一列上使用字符串使用 intersect
函数。有没有更优雅的解决方案?
A = [1,1;1,3;1,4;2,1;2,5;3,1]
一个=
1 1
1 3
1 4
2 1
2 5
3 1
B = [2,5;1,4]
乙=
2 5
1 4
您可以避免合并列。使用相交时,您可以使用 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
我想找到两个矩阵中两列的交集(请参见下面的示例)。所以要找到 A 和 B 相交的位置——在本例中是位置 3 和 5。
到目前为止,我的解决方案是将两列合并为一列,然后在一列上使用字符串使用 intersect
函数。有没有更优雅的解决方案?
A = [1,1;1,3;1,4;2,1;2,5;3,1]
一个=
1 1
1 3
1 4
2 1
2 5
3 1
B = [2,5;1,4]
乙=
2 5
1 4
您可以避免合并列。使用相交时,您可以使用 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