主要内容

setdiff

设置两个数组的差值

描述

例子

C= setdiff (A、B中返回数据。一个这不是B,不要重复。C是有序的。

  • 如果一个B那么是表格还是时间表呢setdiff一个这些都不在B。的航班时刻表,setdiff考虑行时间以确定相等性,并对输出时间表进行排序C按行乘以。

例子

C= setdiff (A、BsetOrder返回C按照特定的顺序。setOrder可以“排序”“稳定”

C= setdiff (A、B___, '行')C= setdiff (A、B“行”,___处理每一行一个每一行B作为单个实体,并返回来自的行一个这些都不在B,不要重复。你必须说明一个B还可以指定setOrder

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

例子

Cia= setdiff()___还返回索引向量ia使用任何前面的语法。

  • 一般来说,C = A(ia)

  • 如果“行”选项,则C = A(ia,:)

  • 如果一个B那么是表格还是时间表呢C = A(ia,:)

例子

Cia= setdiff()A、B“遗产”)Cia= setdiff()A、B、“行”、“遗产”)保持的行为setdiff功能从R2012b和以前的版本。

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

例子

全部折叠

定义两个值相同的向量。

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

找出中的值一个这些都不在B

C = setdiff(A,B)
C =1×31 3 5

定义两个行相同的表。

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

找出行数一个这些都不在B

C = setdiff(A,B)
C =2×3表Var1 Var2 Var3 ____ ____ _____ 2 B true 4 D true

定义两个值相同的向量。

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

找出中的值一个这些都不在B还有索引向量ia,这样C = A(ia)

[C, A] = setdiff(A,B)
C =1×31 3 5
ia =3×14 1 5

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

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

定义一个表,B,变量与一个

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

找出行数一个这些都不在B,以及索引向量ia,这样C = A(ia,:)

[C, A] = setdiff(A,B)
C =4×3表性别年龄身高______ ___ ______朱迪F 35 64特德M 27 74鲍勃M 46 61弗雷德M 52 68
ia =4×15 1 4 2

一排排的C是按先后顺序排序的吗性别接下来是年龄

定义两个行相同的矩阵。

A = [7 9 7];0 0 0;7 9 7;5 5 5;[4];B = [0 0 0];[5];

一个这些都不在B还有索引向量ia,这样C = A(ia,:)

[C, A] = A,B,“行”
C =2×314、5、7、9、7
ia =2×15个1

使用setOrder中值的顺序C

指定“稳定”“排序”当值的顺序C是很重要的。

A = [3 6 2 1 5 1 1];B = [2 4 6];[C, A] = A,B,“稳定”
C =1×33 1 5
ia =3×11 4 5

或者,您可以指定“排序”秩序。

[C, A] = A,B,“排序”
C =1×31 3 5
ia =3×14 1 5

定义两个向量

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

求的集合差一个B

C = setdiff(A,B)
C =1×2南南

setdiff对待不同的值。

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

A = {“狗”“猫”“鱼”“马”};

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

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

找出中的字符向量一个这些都不在B

[C, A] = setdiff(A,B)
C =1 x2单元格{‘狗’}{'鱼'}
ia =2×11 3

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

创建一个字符向量,一个

A = [“猫”“狗”“狐狸”“猪”];类(一)
Ans = 'char'

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

B = {“狗”“猫”“鱼”“马”};类(B)
Ans = 'cell'

找出中的字符向量一个这些都不在B

C = setdiff(A,B)
C =2 x1细胞{“福克斯”}{'猪'}

结果,C,是字符向量的单元数组。

类(C)
Ans = 'cell'

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

找出的区别一个B使用当前行为。

A = [3 6 2 1 5 1 1];B = [2 4 6];[C1,ia1] = setdiff(A,B)
C1 =1×31 3 5
ia1 =3×14 1 5

找出的区别一个B,并保留遗留行为。

[c, c, c] = [c, c, c]“遗产”
C2 =1×31 3 5
ia2 =1×37 1 5

输入参数

全部折叠

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

一个B必须属于同一个类,但有以下例外:

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

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

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

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

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

  • 如果一个B都是有序分类数组,它们必须具有相同的类别集,包括它们的顺序。如果既不一个也不B是有序的,它们不需要具有相同的类别集,并且使用类别名称执行比较。在本例中,的类别C来自的类别的排序并集是吗一个B

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

  • 如果一个B作为日期时间数组,它们在是否指定时区方面必须彼此一致。

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

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

  • 情商

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

订单标志,指定为“排序”“稳定”中值(或行)的顺序C

国旗 描述
“排序”

中的值(或行)C按返回的排序顺序返回排序

例子

C = setdiff([4 1 3 2 5],[21 1],“排序”
C = 3

“稳定”

中的值(或行)C返回与中相同的顺序一个

例子

C = setdiff([4 1 3 2 5],[21 1],“稳定”
5 .答案:C

数据类型:字符|字符串

输出参数

全部折叠

的差异一个B,以矢量、矩阵、表或时间表的形式返回。如果输入一个B是表格还是时间表,然后是变量的顺序C和变量的顺序一样吗一个

下面描述的形状C当输入是向量或矩阵时“遗产”未指定标志:

  • 如果“行”标志未指定,且一个是一个行向量C是一个行向量。

  • 如果“行”标志未指定,且一个它不是行向量吗C是一个列向量。

  • 如果“行”则指定FlagC矩阵是否包含行一个这些都不在B

  • 的所有值(或行)一个也在B,然后C是一个空矩阵。

的类C和的类相同吗一个,除非:

  • 一个字符数组是和吗B是字符向量的单元阵列,在哪种情况下C是字符向量的单元数组。

  • 一个是字符向量,字符向量的单元数组,还是字符串,和B是一个分类数组,在哪种情况下C是一个分类数组。

  • 一个是字符向量或单个字符向量的细胞数组和B是一个datetime数组,在哪种情况下C是一个日期时间数组。

  • 一个是字符向量或字符向量的细胞数组和B是字符串数组,在哪种情况下C是一个字符串数组。

索引一个时,作为列向量返回“遗产”未指定标志。ia中的值(或行)一个这些都不在B。中出现的重复值(或行)一个,然后ia包含值(或行)的第一个出现项的索引。

提示

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

扩展功能

R2006a之前引入