smember函数——检测集合中的元素

ismember函数用来检测元素是否在集合中。

1.tf=ismember(a,b)

返回与a大小相同的逻辑数组,如果a中的元素属于b,那么A中的相应位置返回1(true),否则返回0(false)。

例:a=[1 2 3 4 5];

    b=[1 3 5];

    c1=ismember(a,b);  %判断a中的元素有没有在b中出现

    c2=ismember(b,a);  %判断b中的元素有没有在a中出现

那么 c1= 1     0     1     0     1

     c2= 1     1     1

 

2. [tf, loc] = ismember(a,b)

tf返回一个和a同样大小的矩阵,a的元素在b中出现,tf上的相应位置元素值为1,没有出现则为0;loc也是返回一个和a同样大小的矩阵,其相应位置的值为a相应位置的元素在b中出现的最后标号,注意是最后的标号,若某元素在b中出现多次,则记录的是最后一次出现的标号,若该位置上的a的元素没有在b中出现,则返回0.

例: a=[1 2 3 4 5];

     b=[1 3 5 8 3 5 4 7 9 4];

     [tf1, loc1] = ismember(a,b);

     [tf2, loc2] = ismember(b,a);

结果

     tf1=     0     1     1     1

     loc1=1     0     5    10     6

     tf2=1     1     1     0     1     1     1     0     0     1

     loc2=1     3     5     0     3     5     4     0     0     4

 

3.k=ismember(a,b,'rows')

a与b是列数相同的矩阵,如果a中的某一行与b中某一行元素相同,返回1,否则返回0。

注:k=ismember(a,b,'rows')中2012版本的Matlab是‘rows’,而以前版本的是‘row’

例 a=[1 2 3;
      2 4 6];

   b=[1 2 3;
      2 4 7;
      2 4 6;
      1 3 6];

k1=ismember(a,b,'rows');

k2=ismember(b,a,'rows');

结果 k1 =1
         1

   

    k2=1
       0
       1
       0

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值