文档帮助中心文档
设置两个数组的差值
C = setdiff(A,B)
C = setdiff(A,B,setOrder)
C = setdiff(A,B,___, '行')
C = setdiff(A,B,'rows',___)
[C,ia] = setdiff(___)
[C,ia] = setdiff(A,B,'legacy')
[C,ia] = setdiff(A,B,'rows','legacy')
例子
C= setdiff (A、B)返回数据一个这不在B,没有重复。C是有序的。
C= setdiff (A、B)
C
A、B
一个
B
如果一个和B那么,是桌子还是时间表setdiff返回的行一个不在里面B。的航班时刻表,setdiff考虑行时间以确定相等性,并对输出时间表进行排序C行乘以。
setdiff
C= setdiff (A、B,setOrder)返回C以特定的顺序。setOrder可以“排序”或“稳定”。
C= setdiff (A、B,setOrder)
setOrder
“排序”
“稳定”
C= setdiff (A、B,___, '行')和C= setdiff (A、B“行”,___)处理每一行一个每一行B作为单个实体,并返回一个不在里面B,没有重复。您必须指定一个和B可以选择指定setOrder。
C= setdiff (A、B,___, '行')
C= setdiff (A、B“行”,___)
的“行”选项不支持单元格数组,除非其中一金宝app个输入是分类数组或日期时间数组。
“行”
[C,ia= setdiff(___)还返回索引向量ia使用任何前面的语法。
[C,ia= setdiff(___)
ia
一般来说,C = A(ia)。
C = A(ia)
如果“行”选项,那么C = A(ia,:)。
C = A(ia,:)
如果一个和B那么,是桌子还是时间表C = A(ia,:)。
[C,ia= setdiff(A、B“遗产”)和[C,ia= setdiff(A、B、“行”、“遗产”)的行为setdiff函数来自R2012b和之前的版本。
[C,ia= setdiff(A、B“遗产”)
[C,ia= setdiff(A、B、“行”、“遗产”)
的“遗产”选项不支持分类数组、日期时间数组金宝app、持续时间数组、表或时间表。
“遗产”
全部折叠
定义两个值相同的向量。
A = [3 6 2 1 5 1 1];B = [2 4 6];
中求值一个不在里面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 =2×3表Var1 Var2 Var3 ____ ____ _____ 2 B真4 D真
中求值一个不在里面B还有下标向量ia,以致于C = A(ia)。
[C,ia] = setdiff(A,B)
ia =3×14 1 5
定义一个表,一个五个人的性别、年龄和身高。
A =表([“米”;“米”;“F”;“米”;“F”]、[27;52;31;46;35],[74;68;64;61;64),…“VariableNames”,{“性别”“年龄”“高度”},…“RowNames”,{“泰德”“弗雷德”“贝蒂”“鲍勃”“朱迪”})
一个=5×3表性别年龄身高______ ___ ______ Ted M 27 74 Fred M 52 68 Betty F 31 64 Bob M 46 61 Judy 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 =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;1 4 5];B = [0 0 0;5 5 5];
找到来自的行一个不在里面B还有下标向量ia,以致于C = A(ia,:)。
[C ia] = setdiff (A, B,“行”)
C =2×31 4 5 7 9 7
ia =2×15个1
使用setOrder参数指定中的值的顺序C。
指定“稳定”或“排序”当值的顺序在C是很重要的。
A = [3 6 2 1 5 1 1];B = [2 4 6];[C ia] = setdiff (A, B,“稳定”)
C =1×33 1 5
ia =3×11 4 5
或者,您可以指定“排序”秩序。
[C ia] = setdiff (A, B,“排序”)
定义两个向量南。
南
A = [5 NaN NaN];B = [5 NaN];
求的集合之差一个和B。
C =1×2南南
setdiff对待南值为不同的。
创建一个字符向量的单元格数组,一个。
A = {“狗”,“猫”,“鱼”,“马”};
创建一个字符向量的单元格数组,B,其中一些向量有尾随空白。
B = {“狗”,“猫”,“鱼”,“马”};
找出其中的特征向量一个不在里面B。
C =1 x2单元格{‘狗’}{'鱼'}
ia =2×11 3
setdiff将字符向量单元格数组中的尾随空格视为不同字符。
创建一个字符向量,一个。
A = [“猫”;“狗”;“狐狸”;“猪”];类(一)
Ans = 'char'
创建一个字符向量的单元格数组,B。
B = {“狗”,“猫”,“鱼”,“马”};类(B)
Ans = 'cell'
C =2 x1细胞{“福克斯”}{'猪'}
结果,C,是字符向量的单元格数组。
类(C)
使用“遗产”标记来保存的行为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,并保留遗留行为。
[C2, ia2] = setdiff (A, B,“遗产”)
C2 =1×31 3 5
ia2 =1×37 1 5
输入数组。如果您指定“行”选项,然后一个和B必须有相同数量的列。
一个和B必须属于同一类,但有以下例外:
逻辑,字符,并且所有数字类都可以与双数组。
逻辑
字符
双
字符向量的单元格数组可以与字符数组或字符串数组组合。
分类数组可以与字符数组、字符向量的单元格数组或字符串数组组合。
Datetime数组可以与日期字符向量的单元格数组或单个日期字符向量组合。
有额外的要求一个和B根据数据类型:
如果一个和B都是有序分类数组,它们必须具有相同的类别集,包括它们的顺序。如果既不一个也不B是顺序的,它们不需要具有相同的类别集,并且使用类别名称执行比较。在本例中,类别为C由类别组成一个其次是类别B不在里面一个。类别的顺序与一个和B,按类别顺序排序C。
如果一个和B是表或时间表,它们必须有相同的变量名(除了顺序)。对于表,行名将被忽略,因此具有相同值但名称不同的两行被认为是相等的。对于时间表,会考虑行时间,因此具有相同值但时间不同的两行不会被认为相等。
如果一个和B是datetime数组,它们必须在是否指定时区方面彼此一致。
一个和B也可以是具有以下类方法的对象:
排序(或sortrows为“行”选项)
排序
sortrows
情商
不
对象类方法必须彼此一致。这些对象包括派生自相同根类的异构数组。例如,一个和B可以是图形对象的句柄数组。
订单标志,指定为“排序”或“稳定”中值(或行)的顺序C。
中的值(或行)C按返回的排序顺序返回排序。
C = setdiff([4 1 3 2 5],[2 1],“排序”)
C = 3 4 5
中的值(或行)C以与中的相同的顺序返回一个。
C = setdiff([4 1 3 2 5],[2 1],“稳定”)
C = 4 3 5
数据类型:字符|字符串
字符串
的差异一个和B,以向量、矩阵、表格或时间表的形式返回。如果输入一个和B是表格还是时间表,那么变量的顺序呢C和里面变量的顺序一样吗一个。
下面介绍的形状C当输入是向量或矩阵时,当“遗产”Flag未指定:
如果“行”标志未指定,且一个是行向量吗C是行向量。
如果“行”标志未指定,且一个不是行向量吗C是一个列向量。
如果“行”则指定FlagC矩阵是否包含的行一个不在里面B。
的所有值(或行)一个也在B,然后C是一个空矩阵。
这类人C是同类的吗一个,除非:
一个字符数组和B是字符向量的单元格数组,在哪种情况下C是字符向量的单元格数组。
一个是字符向量,单元格字符向量数组,还是字符串,和B是分类数组,在哪种情况下C是分类数组。
一个单元格是字符向量数组还是单个字符向量和B是datetime数组,在哪种情况下Cdatetime数组。
一个字符向量或单元格数组的字符向量和B是字符串数组,在哪种情况下C是一个字符串数组。
索引一个属性时,作为列向量返回“遗产”未指定Flag。ia中的值(或行)一个不在里面B。中唯一出现的重复值(或行)一个,然后ia包含值(或行)第一次出现的索引。
要查找与表或时间表中某个变量子集有关的集合差值,可以使用列下标。例如,你可以使用setdiff ((:,var), B (:,var)),在那里var是正整数、正整数的向量、变量名、变量名的单元格数组或逻辑向量。或者,您可以使用vartype创建选择指定类型变量的下标。
setdiff ((:,var), B (:,var))
var
vartype
使用注意事项和限制:
的“稳定”和“遗产”不支持选项。金宝app
类型输入“字符”不支持。金宝app
“字符”
有关更多信息,请参见高大的数组。
代码生成不支持第一个或第二个参数的单元格数组。金宝app
时,没有指定“行”选择:
输入一个和B必须是向量。如果您指定“遗产”选项,然后输入一个和B必须是行向量。
变长行向量的第一维长度必须固定为1。可变大小列向量的第二维长度必须固定为1。
不要使用[]来表示空集。例如,使用1 × 0或0 × 1输入,0 (1,0),表示空集。
[]
0 (1,0)
如果您指定“遗产”选项,那么空输出就是1 × 0的行向量。它们从来不是0乘0。
当你同时指定“遗产”和“行”选项,输出ia是一个列向量。如果ia为空,那么它是0乘1。它从来不是0乘0,即使输出C0-by-0。
当setOrder不是“稳定”或者当你指定“遗产”选项,则输入必须已按升序排序。第一个输出,C,按升序排序。
复杂输入必须是单或双。
单
当一个输入是复数,另一个输入是实数时,执行以下操作之一:
集setOrder来“稳定”。
以复杂升序(按绝对值)对实际输入进行排序。假设实际输入是x。使用排序(复杂的(x))或sortrows(复杂的(x))。
x
排序(复杂的(x))
sortrows(复杂的(x))
看到虚部为零的复杂数据的代码生成(MATLAB编码器)。
backgroundPool
ThreadPool
这个函数完全支持基于线程的环境。金宝app有关更多信息,请参见在线程环境中运行MATLAB函数。
的“遗产”不支持Flag。金宝app
不支持64位整数。金宝app
有关更多信息,请参见在图形处理器上运行MATLAB函数(并行计算工具箱)。
独特的|相交|ismember|issorted|联盟|setxor|排序
独特的
相交
ismember
issorted
联盟
setxor
您有这个示例的修改版本。要使用编辑打开此示例吗?
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,在可用的地方获得翻译的内容,并查看当地的活动和优惠。根据您所在的位置,我们建议您选择:。
您也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
联系当地办事处