主要内容

ismember

作为设置阵列成员的数组元素

描述

例子

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

  • 如果一种B.是表或时间表,然后ismember返回每行的逻辑值。对于时间表,ismember考虑到行时间以确定平等。输出,投资局,是一列栏矢量。

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

'行'选项不支持单元格阵列,除非其中一万博1manbetx个输入是分类数组或DATETIME数组。

例子

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

  • 一般来说,LOCB.中包含的最低索引B.中的每个值一种这是一个成员B..价值0.指示在哪里一种不是一个成员B.

  • 如果是'行'选择选项,然后LOCB.中包含的最低索引B.的每一行一种那也是一排B..价值0.指示在哪里一种不是一排吗B.

  • 如果一种B.是表或时间表,然后LOCB.中包含的最低索引B.的每一行一种那也是一排B..价值0.指示在哪里一种不是一排吗B.

例子

[投资局LOCB.) = ismember (___“遗产”)保留了行为ismember来自R2012B的功能,并使用先前语法中的任何输入参数先前释放。

“遗产”选项不支持分类数组,日期时间阵列万博1manbetx,持续时间数组,表或时间表。

例子

全部收缩

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

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

确定哪些元素一种也在B.

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

A(3)A(4)被发现在B.

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

一个=表([1:5],[“一个”;“B”;“C”;' D ';“E”),逻辑([0,1,0,1,0]))
A =5×3表Var1 Var2 Var3 ____ ____ _____ 1 A false 2 B true 3 C false 4 D true 5 E false
B =表([1:2:10],[“一个”;“C”;“E”;‘G’;'一世'],逻辑(零(5,1)))
B =5×3表Var1 Var2 Var3 ____ ____ _____ 1 A假3 C假5 E假7 G假9 I假

确定哪行一种也在B.

Lia = ismember (A, B)
Lia =5x1逻辑阵列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 =1x4逻辑阵列0 0 1 1
Locb =1×40 0 2 1

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

创建一个向量X.得到第二个向量y通过转换和未转变X.这个转换引入了四舍五入的差异y

x =(1:6)'* pi;y = 10. ^ log10(x);

验证Xy通过取得差异并不相同。

X-Y.
ans =.6×110-14×0.0444 0 0 0 0 0 -0.3553

ismember找到要素X那是在y.这ismember函数执行精确比较并确定X都不是y

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

ismembertol.使用小容差执行比较。ismembertol.将容差的元素视为相等的特征,并确定所有元素X成员的y

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

创建一个表,一种,性别,年龄,身高五人。

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

创建另一个表,B.与之相同的是一种

([B =表'M';“F”;“F”;“F”]、[47;31;35;23],[58]68;64;62;...“VariableNames”,{“性别”“年龄”'高度'},...“RowNames”,{'乔'梅格的“贝丝”“艾米”})
B =4×3表性别年龄身高______ ___ ______乔M 47 68梅格F 31 64贝丝F 35 62艾米F 23 58

确定哪行一种也在B.,以及它们对应的位置B.

[lia,locb] = ismember(a,b)
Lia =5x1逻辑阵列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 =2x1逻辑阵列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 =1x3逻辑阵列1 0 0.
Locb =1×31 0 0.

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

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

a = {'狗'“猫”'鱼''马'};

创建一个字符向量的单元格数组,B.,其中一些矢量有尾随空格。

b = {“狗”“猫”'鱼 ''马'};

确定的字符向量一种也在B.

[lia,locb] = ismember(a,b)
Lia =1x4逻辑阵列0 1 0 1
Locb =1×40 2 0 4

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

创建一个字符向量,一种和一个字符向量的单元格阵列,B.

a = [“猫”;'狗';'狐狸';'猪'];b = {'狗'“猫”'鱼''马'};

确定的字符向量一种也在B.

[lia,locb] = ismember(a,b)
Lia =4x1逻辑阵列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 =1x4逻辑阵列0 0 1 1
locb1 =1×40 0 2 1

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

[lia2,locb2] = ismember(a,b,“遗产”
lia2 =1x4逻辑阵列0 0 1 1
locb2 =1×40 0 4 1

输入参数

全部收缩

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

一种必须属于同一类B.以下是例外情况:

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

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

  • 分类阵列可以与字符数组,字符向量的单元格阵列或字符串数​​组组合。

  • DateTime阵列可以与日期字符向量或单日日期矢量的单元格阵列组合。

还有额外的要求一种B.根据数据类型:

  • 如果一种B.是序列分类阵列,它们必须具有相同的类别,包括其订单。如果既不是一种也不B.是序数,他们不需要具有相同的类别集,并且使用类别名称执行比较。

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

  • 如果一种B.是DateTime阵列,它们必须在彼此中一致,无论是指定时区。

对于文本输入,ismember通常不会忽略字符向量中的尾随空格,字符向量的单元格阵列和字符串阵列。但是,有一些案例ismember忽略尾随空格:

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

  • 当。。。的时候'行'选项指定,ismember忽略字符向量和字符阵列中的尾随空格。

一种也可以是具有以下类方法的对象:

  • 排序(或者排队为了'行'选项)

  • eq.

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

设置数组,指定为数字数组、逻辑数组、字符数组、字符串数组、类别数组、日期时间数组、持续时间数组、字符向量单元格数组、表或时间表。如果指定'行'选项,一种B.必须具有相同数量的列。

B.必须属于同一类一种以下是例外情况:

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

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

  • 分类阵列可以与字符数组,字符向量的单元格阵列或字符串数​​组组合。

  • DateTime阵列可以与日期字符向量或单日日期矢量的单元格阵列组合。

还有额外的要求一种B.根据数据类型:

  • 如果一种B.是序列分类阵列,它们必须具有相同的类别,包括其订单。如果既不是一种也不B.是序数,他们不需要具有相同的类别集,并且使用类别名称执行比较。

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

  • 如果一种B.是DateTime阵列,它们必须在彼此中一致,无论是指定时区。

对于文本输入,ismember通常不会忽略字符向量中的尾随空格,字符向量的单元格阵列和字符串阵列。但是,有一些案例ismember忽略尾随空格:

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

  • 当。。。的时候'行'选项指定,ismember忽略字符向量和字符阵列中的尾随空格。

B.也可以是具有以下类方法的对象:

  • 排序(或者排队为了'行'选项)

  • eq.

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

输出参数

全部收缩

逻辑索引一种,返回为包含逻辑的向量、矩阵或N-D数组1真正的)无论何处(或行)一种成员的B..在其他地方,它包含逻辑0.错误的)。

投资局数组的大小是否相同一种,除非您指定了'行'旗帜。

如果是'行'指定标志或如果一种是一个表或时间表,投资局是一个具有相同行数的列向量一种

地点在B.,作为向量,矩阵或N-D阵列返回。如果是“遗产”未指定Flag,LOCB.中值(或行)的最低索引B.发现了一种.价值0.指示在哪里一种不是一个成员B.

LOCB.数组的大小是否相同一种除非你指定'行'旗帜。

如果是'行'指定标志或如果一种是一个表或时间表,LOCB.是一个具有相同行数的列向量一种

提示

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

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

扩展功能

之前介绍过的R2006a