我是小白,请多指教
我是小白,请多指教
我是小白,请多指教
intersect 函数
用去求取两个矩阵或者向量之间的交集。
具体形式
- C = intersect(A, B);
- C = intersect(A, B, ‘rows’);
- [C, ia, ib] = intersect(A, B)
例子
C = intersect(A, B);
两个矩阵或者向量之间,在全局中寻找共有元素;无论A和B是向量还是矩阵,返货的C均为交集向量。矩阵A和B的大小可以不一致
>> A = randi(9, 3)
A =
5 7 6
6 3 2
7 7 2
>> B = randi(9, 4)
B =
5 3 7 2
9 7 9 2
4 3 9 3
6 5 5 8
>> C = intersect(A, B)
C =
2
3
5
6
7
C = intersect(A, B, ‘rows’)
这种使用方式表示,以矩阵的每一行作为向量进行求取交集, 并返回A和A所共有的行。
与上述形式C = intersect(A, B)在求取的方式上有区别。矩阵A和B的列数必须一致。
>> A = randi(9, 3)
A =
3 9 3
8 4 6
3 2 5
>> B = randi(9, 3)
B =
4 5 7
8 9 7
6 3 4
>> C = intersect(A, B, 'rows')
C =
空矩阵: 0×3
[C, ia, ib] = intersect(A, B)
ia中存放的是交集矩阵C元素在A矩阵中的位置
ib中存放的是交集矩阵C元素在B矩阵中的位置
>> A = randi(9, 4)
A =
2 8 8 4
3 6 6 1
2 5 4 3
2 2 5 2
>> B = randi(9, 4)
B =
2 9 4 8
3 9 9 4
4 5 4 3
1 5 2 4
>> [C, ia, ib] = intersect(A, B)
C =
1
2
3
4
5
8
ia =
14
1
2
11
7
5
ib =
4
1
2
3
7
13
探索篇
若想求取多个矩阵之间的交集,泽科进行多次利用intersect函数。
>> A = randi(9, 3)
A =
1 9 3
2 6 4
9 1 8
>> B = randi(9, 3)
B =
1 6 5
1 7 5
2 6 3
>> C = randi(9, 3)
C =
7 2 8
2 4 1
7 6 9
>> D = intersect(A, intersect(B, C))
D =
1
2
6