文档帮助中心文档
设置两个数组的差异
c = setdiff(a,b)
(A, B, C = setdiff setOrder)
c = setdiff(a,b,___, '行')
C = setdiff (A, B,“行”,___)
[C ia] = setdiff (___)
[c,ia] = setdiff(a,b,'遗留')
[C ia] = setdiff (A, B,“行”,“遗产”)
例子
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“行”,___)
的“行”选项不支持单元格数组,除非其中一万博1manbetx个输入是分类数组或日期时间数组。
“行”
[C,ia) = setdiff (___)也返回索引向量ia使用以前的任何语法。
[C,ia) = setdiff (___)
ia
一般来说,C = (ia).
C = (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、“行”、“遗产”)
的'遗产'选项不支持分类数组、日期时间数组万博1manbetx、持续时间数组、表或时间表。
'遗产'
全部折叠
定义两个具有共同值的向量。
A = [3 6 2 1 5 1 1];B = [2 4 6];
查找一个不在B.
C =1×3.1 3 5.
定义两个具有相同行的表。
a =表([1:5]',['一种';'B';'C';'D';'e'],逻辑([0; 1; 0; 1; 0]))
一个=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’;“我”),逻辑(0(5、1)))
B =5×3表var1 var2 var3 ____ ____ _____ 1 a false 3 c false 5 e false 7 g false 9 i false
找到行一个不在B.
C =2×3表var1 var2 var3 ____ ____ _____ 2 b true 4 d true
查找一个不在B以及索引矢量ia,这样C = (ia).
[C ia] = setdiff (A, B)
ia =3×14 1 5
定义一个表,一个,性别,年龄,身高五人。
([=表“米”;“米”;“F”;“米”;“F”],[27; 52; 31; 46; 35],[74; 68; 64; 61; 64],......'variablenames',{'性别''年龄'“高度”},......'rownames',{'ted''弗雷德''贝蒂'“鲍勃”“朱迪”})
一个=5×3表性别年龄身高______ ___ ______泰德M 27 74弗雷德M 52 68贝蒂F 31 64鲍勃M 46 61朱迪F 35 64
定义一个表,B,变量与一个.
b =表([“F”;“米”;“F”;“F”],[64; 68; 62; 58],[31; 47; 35; 23],......'variablenames',{'性别'“高度”'年龄'},......'rownames',{'meg'“乔”“贝丝”'amy'})
B =4×3表性别身高年龄______ ______ ___ Meg F 64 31 Joe M 68 47 Beth F 62 35 Amy 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×3.3 1 5
ia =3×11 4 5
或者,您可以指定'排序'命令。
[C ia] = setdiff (A, B,'排序')
定义两个包含南.
南
A = [5 NaN NaN];B = [5 NaN];
求的集合差一个和B.
C =1×2南南
setdiff对待南值截然不同。
创建一个字符向量的单元格数组,一个.
一个= {“狗”,'猫','鱼',“马”};
创建一个字符向量的单元格数组,B,其中一些向量的末尾有空白。
B = {'狗 ','猫',“鱼”,“马”};
找到字符向量一个不在B.
C =1 x2单元格{‘狗’}{'鱼'}
ia =2×11 3
setdiff将字符向量的细胞阵列中的尾随空格视为明显的特征。
创建一个字符向量,一个.
= ('猫';“狗”;“狐狸”;“猪”];班级(a)
ans ='char'
创建一个字符向量的单元格数组,B.
B = {“狗”,'猫','鱼',“马”};班级(b)
ans ='cell'
C =2x1细胞{“福克斯”}{'猪'}
结果,C,是一个字符向量的单元格阵列。
类(C)
使用'遗产'国旗的行为保存setdiff从R2012b和以前的版本在您的代码。
找出一个和B与当前的行为。
A = [3 6 2 1 5 1 1];B = [2 4 6];[C1, ia1] = setdiff (A, B)
C1 =1×3.1 3 5.
IA1 =3×14 1 5
找出一个和B,并保留遗留行为。
[C2, ia2] = setdiff (A, B,'遗产')
C2 =1×3.1 3 5.
IA2 =1×3.7 1 5
输入阵列,指定为数字阵列,逻辑阵列,字符数组,字符串数组,分类阵列,datetime阵列,持续时间阵列,字符向量,表格或时间表的单元格阵列。如果您指定了“行”选项,一个和B必须有相同的列数。
一个和B必须属于同一类,但有下列例外:
逻辑,字符,所有的数字类都可以与之结合使用双阵列。
逻辑
字符
双
字符向量的单元格数组可以与字符数组或字符串数组组合。
分类数组可以与字符数组、字符向量的单元格数组或字符串数组结合使用。
Datetime数组可以与包含日期字符向量的单元格数组或单个日期字符向量组合。
有其他要求一个和B基于数据类型:
如果一个和B都是序数类别数组,它们必须具有相同的类别集,包括它们的顺序。如果既不一个也不B是序号,它们不需要具有相同的类别集,并且使用类别名称进行比较。在这种情况下,类别C分类的并集从哪里来一个和B.
如果一个和B是表或时间表,它们必须具有相同的变量名(顺序除外)。对于表,行名被忽略,因此具有相同值但名称不同的两行被认为是相等的。对于时间表,将考虑行时间,因此具有相同值但时间不同的两行不被认为相等。
如果一个和B是datetime数组,它们必须在是否指定时区方面保持一致。
一个和B也可以是具有以下类方法的对象:
种类(或sortrows为“行”选项)
种类
sortrows
情商
NE.
对象类方法必须彼此一致。这些对象包括来自同一根类的异构数组。例如,一个和B可以是图形对象的阵列。
订单标志,指定为'排序'或者“稳定”中值(或行)的顺序C.
值(或行)C按照返回的排序订单返回种类.
C = setdiff([4 1 3 2 5],[2 1],'排序')
5 .答案:C
值(或行)C以相同的顺序返回一个.
C = setdiff([4 1 3 2 5],[2 1],“稳定”)
答案:C
数据类型:字符|细绳
细绳
的差异一个和B,以向量、矩阵、表或时间表的形式返回。如果输入一个和B是表或时间表,然后是变量的顺序C与变量的顺序相同一个.
下面描述的形状C当输入是向量或矩阵时'遗产'未指定标志:
如果“行”标志未指定和一个是行向量吗C是一个行向量。
如果“行”标志未指定和一个那时不是一排矢量C是一列栏矢量。
如果“行”指定标志,然后C是包含行的矩阵一个不在B.
的所有值(或行)一个也是在B,然后C是一个空矩阵。
班级C与类相同一个,除非:
一个是字符数组和B字符向量的单元格数组,在什么情况下C是一个细胞阵列的字符向量。
一个字符向量、字符向量单元格数组或字符串,以及B是一个分类阵列,在这种情况下C是一个类别数组。
一个是字符向量或单个字符矢量的小区阵列和B是datetime数组,在什么情况下C是DateTime数组。
一个是字符向量或特征阵列的字符向量和B是字符串数组,在什么情况下C是一个字符串数组。
指数到一个时作为列向量返回'遗产'未指定标志。ia识别值(或行)一个不在B.如果有一个重复的值(或行)专门出现在一个,然后ia包含要值(或行)的第一次出现的索引。
要查找与表或时间表中的变量子集相关的集合差异,可以使用列下标。例如,你可以用setdiff ((:,vars.),B(:,vars.)),在那里vars.是正整数,正整数的矢量,变量名称,变量名称的单元格数组,或逻辑向量。或者,您可以使用vartype创建用于选择指定类型变量的下标。
setdiff ((:,vars.),B(:,vars.))
vars.
vartype
使用注意事项及限制:
的“稳定”和'遗产'不支持选项。万博1manbetx
类型的输入“字符”不受支持。万博1manbetx
“字符”
有关更多信息,请参见高大的数组.
代码生成不支持第一个或第二个参数的单元格数组。万博1manbetx
当您没有指定“行”选择:
输入一个和B必须是向量。如果您指定了'遗产'选项,然后输入一个和B一定是行向量。
可变尺寸行向量的第一尺寸必须具有固定长度1.可变尺寸列向量的第二维度必须具有固定长度1。
不要使用[]表示空集。例如,使用1 × 0或0 × 1输入,0 (1,0),表示空集。
[]
0 (1,0)
如果您指定了'遗产'选项,然后空输出是行向量,1-by-0。它们永远不会0-by-0。
当你指定两个'遗产'和“行”选项,输出ia是一列栏矢量。如果ia为空,则为0 × 1。它永远不会是0乘0,即使输出C0-by-0。
当setOrder不是“稳定”或者当您指定时'遗产'选项,必须已按升序排序输入。第一个输出,C,按升序排序。
复杂输入必须是单身的或者双.
单身的
当一个输入复杂并且另一个输入是真实的时,请执行以下操作之一:
集setOrder到“稳定”.
对实际输入按复升序排序(按绝对值)。假设实际输入是x.使用排序(复杂的(x))或者sortrows(复杂的(x)).
x
排序(复杂的(x))
sortrows(复杂的(x))
看到具有零值虚部的复杂数据的代码生成(MATLAB编码器).
的'遗产'不支持Flag。万博1manbetx
不支持64位整数。万博1manbetx
有关更多信息,请参见在GPU上运行MATLAB函数(并行计算工具箱).
相交|ismember.|issorted|setxor.|种类|联盟|独特的
相交
ismember.
issorted
setxor.
联盟
独特的
您有这个示例的修改版本。您想打开这个示例与您的编辑吗?
你点击一个链接对应于这个MATLAB命令:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。万博1manbetx
选择一个网站,以便在可用的地方进行翻译的内容,并查看本地活动和优惠。根据您的位置,我们建议您选择:.
您还可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
与当地办事处联系