matlab中矩阵求交集函数intersect+例子+实例

我是小白,请多指教
我是小白,请多指教
我是小白,请多指教

intersect 函数

用去求取两个矩阵或者向量之间的交集。

具体形式

  1. C = intersect(A, B);
  2. C = intersect(A, B, ‘rows’);
  3. [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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值