ismember

是集合数组成员的数组元素

描述

例子

投资局= ismember (一个,B)返回一个包含逻辑的数组1(真正的)中的数据一个被发现在B。在其他地方,数组包含逻辑0()。

  • 如果一个B那么,是桌子还是时间表呢ismember为每一行返回一个逻辑值。的航班时刻表,ismember考虑行时间来确定等式。输出,投资局是一个列向量。

投资局= ismember (一个,B,'行')对待每一行一个每一行B作为单个实体并返回一个包含逻辑的列向量1(真正的的地方一个也是行B。在其他地方,数组包含逻辑0()。

“行”选项不支持单元格数组,除非其中一金宝app个输入是类别数组或日期时间数组。

例子

(投资局,Locb)= ismember (___)也返回一个数组,Locb,使用以前的任何语法。

  • 一般来说,Locb中包含最低的索引B对于一个它是B。的值0显示在哪里一个不是吗B

  • 如果“行”然后指定选项Locb中包含最低的索引B对于每一行一个这也是一排B。的值0显示在哪里一个是不是一排B

  • 如果一个B那么,是桌子还是时间表呢Locb中包含最低的索引B对于每一行一个这也是一排B。的值0显示在哪里一个是不是一排B

例子

(投资局,Locb)= ismember (___“遗产”)保持。的行为ismember函数来自R2012b和以前的版本,使用以前语法中的任何输入参数。

“遗产”选项不支持类别数组、日期时间数组金宝app、持续时间数组、表或时间表。

例子

全部折叠

创建两个具有相同值的向量。

A = [5 3 4 2];B = [2 4 4 4 6 8];

确定一个也在B

Lia = ismember (A, B)
Lia =1 x4逻辑阵列0 0 1 1

(3)(4)被发现在B

创建两个具有相同行的表。

一个=表([1:5],[“一个”;“B”;“C”;' D ';“E”),逻辑([0,1,0,1,0]))
一个=5×3表答案:1 . A 2 . B 3 . C 4 . D 5 . E 5 . D
B =表([1:2:10],[“一个”;“C”;“E”;‘G’;“我”),逻辑(0 (5、1)))
B =5×3表1 . A false 3 C false 5 E false 7 G false 9 I false

确定哪些行一个也在B

Lia = ismember (A, B)
Lia =5 x1逻辑阵列1 0 1 0 1

:(1),(3:),:一个(5日)被发现在B

创建两个具有相同值的向量。

A = [5 3 4 2];B = [2 4 4 4 6 8];

确定一个也在B以及它们相应的位置B

(Lia Locb] = ismember (A, B)
Lia =1 x4逻辑阵列0 0 1 1
Locb =1×40 0 2 1

最低指数(3)B (2),(4)被发现在B (1)

创建一个向量x。得到第二个向量y通过变换和不变换x。此转换引入了四舍五入的差异y

x =(1:6) *π;y = 10 ^ log10 (x);

验证xy取差并不相同。

x - y
ans =6×110-14年×0.0444 0 0 0 0 -0.3553

使用ismember找到元素xy。的ismember函数执行精确的比较,并确定其中的一些矩阵元素x不是y

lia = ismember (x, y)
lia =6 x1逻辑阵列0 1 1 1 1 0

使用ismembertol使用较小的公差来执行比较。ismembertol将容忍范围内的元素视为相等,并确定所有的元素x成员的y

LIA = ismembertol (x, y)
LIA =6 x1逻辑阵列1 1 1 1 1 1

创建一个表,一个五个人的性别、年龄和身高。

([=表“米”;“米”;“F”;“米”;“F”]、[27;52;31;46;35],[74;68;64;61;64),“VariableNames”,{“性别”“年龄”“高度”},“RowNames”,{“泰德”“弗雷德”“贝蒂”“鲍勃”“朱迪”})
一个=5×3表性别,年龄,身高,身高,身高,身高,身高,身高,身高,身高,身高,身高,身高,身高,身高,身高

创建另一个表,B,有共同的争吵一个

([B =表“米”;“F”;“F”;“F”]、[47;31;35;23],[58]68;64;62;“VariableNames”,{“性别”“年龄”“高度”},“RowNames”,{“乔”梅格的“贝丝”“艾米”})
B =4×3表6 . c)【句意】乔47岁,麦格31岁,贝丝35岁,艾米23岁,58岁

确定哪些行一个也在B,以及它们相应的位置B

(Lia Locb] = ismember (A, B)
Lia =5 x1逻辑阵列0 0 1 0 0
Locb =5×10 0 2 0 0

具有相同值但名称不同的两行被认为是相等的。相同的数据贝蒂被发现在:B (2),对应于梅格

创建两个具有相同行的矩阵。

A = [1 3 5 6;2 4 6 8];B = [2 4 6 8;1 3 5 7;2 4 6 8];

确定哪些行一个也在B以及它们相应的位置B

[Lia, Locb] = ismember(A,B,“行”)
Lia =2 x1逻辑阵列0 1
Locb =2×10 1

最低指数:一个(2):B (1)

创建两个包含

A = [5 NaN NaN];B = [5 NaN NaN];

确定一个也在B,以及它们相应的位置B

(Lia Locb] = ismember (A, B)
Lia =1 x3逻辑阵列1 0 0
Locb =1×31 0 0

ismember对待价值观是截然不同的。

创建一个字符向量的单元数组,一个

一个= {“狗”,“猫”,“鱼”,“马”};

创建一个字符向量的单元数组,B,其中一些向量后面有空白。

B = {“狗”,“猫”,“鱼”,“马”};

确定的字符向量一个也在B

(Lia Locb] = ismember (A, B)
Lia =1 x4逻辑阵列0 1 0 1
Locb =1×40 2 0 4

ismember将字符向量的单元数组中的尾随空格视为不同的字符。

创建一个字符向量,一个,以及字符向量的单元数组,B

= (“猫”;“狗”;“狐狸”;“猪”];B = {“狗”,“猫”,“鱼”,“马”};

确定的字符向量一个也在B

(Lia Locb] = ismember (A, B)
Lia =4 x1逻辑阵列1 1 0 0
Locb =4×12 1 0 0

使用“遗产”标记来保存的行为ismember从R2012b和以前的版本在您的代码。

找到B与当前行为。

A = [5 3 4 2];B = [2 4 4 4 6 8];[Lia1, Locb1] = ismember (A, B)
Lia1 =1 x4逻辑阵列0 0 1 1
Locb1 =1×40 0 2 1

找到B,并保留遗留行为。

[Lia2, Locb2] = ismember (A, B,“遗产”)
Lia2 =1 x4逻辑阵列0 0 1 1
Locb2 =1×40 0 4 1

输入参数

全部折叠

查询数组,指定为数字数组、逻辑数组、字符数组、字符串数组、类别数组、日期时间数组、持续时间数组、字符向量单元数组、表或时间表。如果你指定“行”选项,一个B必须具有相同数量的列。

一个必须属于同一类B但以下情况除外:

  • 逻辑,字符,所有数值类都可以与之结合数组。

  • 字符向量的单元数组可以与字符数组或字符串数组组合。

  • 分类数组可以与字符数组、字符向量的单元数组或字符串数组组合。

  • Datetime数组可以与日期字符向量或单个日期字符向量的单元数组组合。

有额外的要求一个B基于数据类型:

  • 如果一个B都是有序的范畴数组,它们必须有相同的范畴集,包括它们的顺序。如果既不一个也不B是序号,它们不需要具有相同的类别集,并且使用类别名称执行比较。

  • 如果一个是一个表或时间表,它必须有相同的变量名作为B(订单除外)。对于表,行名称将被忽略,因此具有相同值但名称不同的两行被认为是相等的。对于时间表,将考虑行时间,因此具有相同值但时间不同的两行不视为相等。

  • 如果一个B是datetime数组,它们必须在指定时区时保持一致。

为文本输入,ismember通常不会忽略字符向量、字符向量的单元格数组和字符串数组中的尾随空格。然而,也有少数情况下ismember忽略尾随空格:

  • 如果一个是一个字符数组和B是字符向量的单元数组吗ismember忽略字符数组中的尾随空格。

  • “行”指定选项,ismember忽略字符向量和字符数组中的尾随空格。

一个也可以是一个对象与以下类方法:

  • 排序(或sortrows“行”选项)

  • 情商

对象类方法必须彼此一致。这些对象包括来自相同根类的异构数组。例如,一个可以是图形对象的句柄数组。

集合数组,指定为数值数组、逻辑数组、字符数组、字符串数组、类别数组、日期时间数组、持续时间数组、字符向量单元数组、表格或时间表。如果你指定“行”选项,一个B必须具有相同数量的列。

B必须属于同一类一个但以下情况除外:

  • 逻辑,字符,所有数值类都可以与之结合数组。

  • 字符向量的单元数组可以与字符数组或字符串数组组合。

  • 分类数组可以与字符数组、字符向量的单元数组或字符串数组组合。

  • Datetime数组可以与日期字符向量或单个日期字符向量的单元数组组合。

有额外的要求一个B基于数据类型:

  • 如果一个B都是有序的范畴数组,它们必须有相同的范畴集,包括它们的顺序。如果既不一个也不B是序号,它们不需要具有相同的类别集,并且使用类别名称执行比较。

  • 如果B是一个表或时间表,它必须有相同的变量名作为一个(订单除外)。对于表,行名称将被忽略,因此具有相同值但名称不同的两行被认为是相等的。对于时间表,将考虑行时间,因此具有相同值但时间不同的两行不视为相等。

  • 如果一个B是datetime数组,它们必须在指定时区时保持一致。

为文本输入,ismember通常不会忽略字符向量、字符向量的单元格数组和字符串数组中的尾随空格。然而,也有少数情况下ismember忽略尾随空格:

  • 如果一个是一个字符数组和B是字符向量的单元数组吗ismember忽略字符数组中的尾随空格。

  • “行”指定选项,ismember忽略字符向量和字符数组中的尾随空格。

B也可以是一个对象与以下类方法:

  • 排序(或sortrows“行”选项)

  • 情商

对象类方法必须彼此一致。这些对象包括来自相同根类的异构数组。例如,B可以是图形对象的句柄数组。

输出参数

全部折叠

逻辑索引一个,以包含逻辑的向量、矩阵或N-D数组形式返回1(真正的)中的值(或行)一个成员的B。在其他地方,它包含了逻辑性0()。

投资局数组的大小是否与一个,除非您指定“行”国旗。

如果“行”指定或if标志一个是表或时间表,投资局列向量的行数是否与一个

地点在B,以向量、矩阵或N-D数组的形式返回。如果“遗产”没有指定标记,Locb包含值(或行)的最低索引B发现于一个。的值0显示在哪里一个不是吗B

Locb数组的大小是否与一个除非你指定“行”国旗。

如果“行”指定或if标志一个是表或时间表,Locb列向量的行数是否与一个

提示

  • 使用ismembertol使用容差来执行浮点数之间的比较。

  • 查找表或时间表中的行一个发现于B对于变量的子集,可以使用列下标。例如,你可以用ismember ((:,var),B (:,var)),在那里var是正整数、正整数向量、变量名、变量名单元数组或逻辑向量。或者,您可以使用vartype创建选择指定类型变量的下标。

扩展功能

之前介绍过的R2006a