文件帮助中心文件
设置两个数组的差值
C = setdiff (A, B)
c = setdiff(a,b,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,'行',___)
这'行'选项不支持单元格阵列,除非其中一金宝app个输入是分类数组或DATETIME数组。
'行'
[C那IA.] = setdiff(___)还返回索引矢量IA.使用任何前面的语法。
[C那IA.] = setdiff(___)
IA.
一般来说,c = a(ia).
c = a(ia)
如果是'行'选择选项,然后: C = (ia).
: C = (ia)
如果一种和B.是表或时间表,然后: C = (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];B = [2 4 6];
找到值一种那不是B..
C =1×31 3 5
定义具有共同行的两个表。
一个=表([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..
C =2×3表Var1 Var2 Var3 ____ ____ _____ 2 B true 4 D true
找到值一种那不是B.以及索引向量IA.,这样c = a(ia).
[c,ia] = setdiff(a,b)
IA =3×14 1 5.
定义表,一种,性别,年龄和5人的身高。
a =表(['M';'M';'F';'M';'F']、[27;52;31;46;35],[74;68;64;61;64),...“VariableNames”,{“性别”“年龄”'高度'},...“RowNames”,{“泰德”“弗雷德”“贝蒂”'鲍勃''朱迪'})
A =5×3表性别年龄高度______ ___ ______泰德M 27 74 FRED M 52 68贝蒂F 31 64鲍勃46 61朱迪F 35 64
定义表,B.,具有相同的变量一种.
([B =表'F';'M';'F';'F'],[64; 68; 62; 58],[31, 47岁,35岁,23],...“VariableNames”,{“性别”'高度'“年龄”},...“RowNames”,{梅格的'乔'“贝丝”“艾米”})
B =4×3表性别高度______ ______ ___ ___ meg f 64 31 joe m 68 47 beth f 62 35 amy f 58 23
找到一种那不是B.以及索引矢量IA.,这样: C = (ia).
C =4×3表性别年龄高度_________ _________朱迪F 35 64 TED M 27 74 BOB M 46 61 FRED 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 = (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];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南南];B = [5南];
找到设定的差异一种和B..
C =1×2南纳
setdiff.对待南价值观是截然不同的。
创建一个字符向量的单元格数组,一种.
a = {'狗'那“猫”那“鱼”那'马'};
创建一个字符向量的单元格数组,B.,其中一些矢量有尾随空格。
b = {“狗”那“猫”那'鱼 '那'马'};
找到字符向量一种那不是B..
C =1x2细胞{'狗'} {'鱼'}
IA =2×11 3.
setdiff.将字符向量单元格数组的尾随空格视为不同的字符。
创建一个字符向量,一种.
a = [“猫”;'狗';'狐狸';'猪'];类(一)
ans = '字符'
创建一个字符向量的单元格数组,B..
b = {'狗'那“猫”那“鱼”那'马'};类(B)
ans =“细胞”
C =2 x1细胞{'fox'} {'pig'}
结果,C,是字符向量的单元格数组。
班级(c)
使用“遗产”旗帜保持行为setdiff.来自R2012B和代码中的先前版本。
找到差异一种和B.随着当前的行为。
a = [3 6 2 1 5 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.必须属于具有以下例外的同一类:
逻辑那char,所有数字类都可以与之结合双倍的数组。
逻辑
char
双倍的
字符向量的单元格阵列可以与字符阵列或串阵列组合。
分类阵列可以与字符数组,字符向量的单元格阵列或字符串数组组合。
DateTime阵列可以与日期字符向量或单日日期矢量的单元格阵列组合。
还有额外的要求一种和B.根据数据类型:
如果一种和B.是序列分类阵列,它们必须具有相同的类别,包括其订单。如果既不是一种也不B.是序数,他们不需要具有相同的类别集,并且使用类别名称执行比较。在这种情况下,类别的类别C是类别的分类联盟一种和B..
如果一种和B.是表或时间表,它们必须具有相同的变量名称(订单除外)。对于表,忽略行名称,因此具有相同的两行具有相同值但不同的名称。对于时间表,考虑行时间,因此两行具有相同值但不同的时间,不被视为相等。
如果一种和B.是DateTime阵列,它们必须在彼此中一致,无论是指定时区。
一种和B.也可以是具有以下类方法的对象:
排序(要么排队为了'行'选项)
排序
排队
eq.
不
对象类方法必须彼此一致。这些对象包括来自相同根类的异构阵列。例如,一种和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
数据类型:char|字符串
字符串
差异一种和B.,作为向量,矩阵,表格或时间表返回。如果输入一种和B.是表还是时间表,那么变量的顺序在哪里C和变量的顺序一样吗一种.
下面描述的形状C当输入是向量或矩阵时以及何时“遗产”未指定Flag:
如果是'行'未指定标志一种是一排矢量,然后C是一排矢量。
如果是'行'未指定标志一种不是行向量吗C是一个列向量。
如果是'行'则指定FlagC一个矩阵包含行吗一种那不是B..
如果所有的值(或行)一种也在B., 然后C是一个空矩阵。
的类C是同一班的吗一种, 除非:
一种是一个字符阵列和B.是一个字符向量的单元格阵列,在这种情况下C是字符向量的单元格数组。
一种是一个字符矢量,字符矢量或字符串的特征阵列,以及B.是分类数组,在什么情况下C是一个分类数组。
一种单元格数组是字符向量还是单个字符向量和B.是DateTime数组,在这种情况下C是一个日期时间数组。
一种是字符向量还是字符向量和的单元格数组B.是一个字符串数组,在这种情况下C是一个字符串数组。
索引一种,返回列向量时“遗产”未指定Flag。IA.中的值(或行)一种那不是B..如果有一个专门出现的重复值(或行)一种, 然后IA.包含值(或行)第一次出现的索引。
要找到与表或时间表的变量子集的集合差异,可以使用列订户。例如,您可以使用setdiff(a(:,var), B (:,var))), 在哪里var是正整数、正整数向量、变量名、变量名单元格数组或逻辑向量。或者,您可以使用vartype.创建选择指定类型的变量的下标。
setdiff(a(:,var), B (:,var)))
var
vartype.
使用说明和限制:
这'稳定的'和“遗产”不支持选项。金宝app
输入的类型'char'不受支持。金宝app
'char'
有关更多信息,请参阅高阵列.
代码生成不支持第一个或第二个参数的单元格阵列。金宝app
当您没有指定'行'选项:
输入一种和B.必须向量。如果指定“遗产”选项,然后输入一种和B.必须是行向量。
可变大小行向量的第一个维数必须固定为1。可变大小列向量的第2维必须固定长度为1。
不使用[]表示空集。例如,使用1-0或0×1输入,零(1,0),表示空集。
[]
零(1,0)
如果指定“遗产”选项,则空输出为行向量,1 × 0。它们从不是0乘0的。
当您指定两者时“遗产”和'行'选择,输出IA.是一个列向量。如果IA.是空的,那是0比1。即使输出,它也永远不会为0-by-0C是0-by-0。
当。。。的时候setOrder.不是'稳定的'或者当你指定“遗产”选项时,输入必须已经按升序排序。第一个输出,C,按升序排序。
复杂的输入必须是单或双倍的.
单
当一个输入是复数,而另一个输入是实数时,执行下列操作之一:
放setOrder.来'稳定的'.
以复杂的升序(通过绝对值)对实际输入进行排序。假设真实的输入是X.采用排序(复杂(x))或sortrows(复杂(x)).
X
排序(复杂(x))
sortrows(复杂(x))
看具有零值的虚部的复杂数据的代码生成(MATLAB编码器).
这“遗产”不支持国旗。金宝app
不支持64位整数。金宝app
有关更多信息,请参阅在GPU上运行matlab函数(并行计算工具箱).
相交|ismember|订购|setxor|排序|联盟|独特的
相交
ismember
订购
setxor
联盟
独特的
您有此示例的修改版本。您是否希望使用您的编辑打开此示例?
您单击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,在那里获得翻译的内容,并看到当地的活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。
联系您当地的办公室