联盟
设置两个数组的并集
语法
C = union(A,B)
C = union(A,B,'rows')
[C,ia,ib] = union(A,B)
[C,ia,ib] = union(A,B,'rows')
[C,ia,ib] = union(___setOrder)
[C,ia,ib] = union(A,B,'legacy')
[C,ia,ib] = union(A,B,'rows','legacy')
描述
例子
两个向量的并集
两张桌子的合并
定义两个具有相同行的表。
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 = union(A,B)
C =7×3表Var1 Var2 Var3 ____ ____ _____ 1 A假2 B真3 C假4 D真5 E假7 G假9 I假
两个向量及其指数的并集
定义两个具有相同值的向量。
A = [5 7 1];B = [3 1 1];
求向量的并集一个
而且B
,以及索引向量,ia
而且ib
.
[C,ia,ib] = union(A,B)
C =1 3 5 7
ia =3 1 2
Ib = 1
中的值C
的组合值是(ia)
而且B (ib)
.
两个表及其索引的联合
定义一个表,一个
,包括三个人的性别、年龄和身高。
A =表([“米”;“米”;“F”]、[27;52;31],(74;68;64),...“VariableNames”, {“性别”“年龄”“高度”},...“RowNames”, {“泰德”“弗雷德”“贝蒂”})
一个=3×3表性别年龄身高______ ___ ______特德M 27 74弗雷德M 52 68贝蒂F 31 64
定义一个表,B
用相同的变量一个
.
B = table([“F”;“米”]、[64;68],[31;47],...“VariableNames”, {“性别”“高度”“年龄”},...“RowNames”, {梅格的“乔”})
B =2×3表性别身高年龄______ ______ ___梅格F 64 31乔M 68 47
求表的并集一个
而且B
,以及索引向量,ia
而且ib
.
[C,ia,ib] = union(A,B)
C =4×3表性别年龄身高______ ___ ______ Betty F 31 64 Ted M 27 74 Joe M 47 68 Fred M 52 68
ia =3 1 2
Ib = 2
的数据梅格
而且贝蒂
都是一样的。联盟
只返回的索引一个
,对应于贝蒂
.
两个矩阵的行并
定义两个共用一行的矩阵。
A = [2 2 2;0 0 1];B = [1 2 3;2 2 2;2 2 2];
求的合并行一个
而且B
,没有重复,以及索引向量ia
而且ib
.
[C,ia,ib] = union(A,B,“行”)
C =0 0 1 1 2 3 2 2 2
ia =2 1
Ib = 1
一排排的C
组合行是:一个(ia)
而且: B (ib)
.
具有指定输出顺序的两个向量的并集
使用setOrder
参数指定中的值的顺序C
.
指定“稳定”
如果你想要这些值C
与…有相同的顺序一个
而且B
.
A = [5 7 1];B = [3 1 1];[C,ia,ib] = union(A,B,“稳定”)
C =5 7 1 3
ia =1 2 3
Ib = 1
或者,您可以指定“排序”
秩序。
A = [5 7 1];B = [3 1 1];[C,ia,ib] = union(A,B,“排序”)
C =1 3 5 7
ia =3 1 2
Ib = 1
含nan的向量并集
定义两个向量南
.
A = [5 NaN 1];B = [4 NaN NaN];
求向量的并集一个
而且B
.
C = union(A,B)
C =1 4 5 NaN NaN NaN
联盟
对待南
值为不同的。
带有尾随空白的字符向量的单元格数组
创建一个字符向量的单元格数组,一个
.
A = {“狗”,“猫”,“鱼”,“马”};
创建一个字符向量的单元格数组,B
,其中一些向量有尾随空白。
B = {“狗”,“猫”,“鱼”,“马”};
结合以下元素一个
而且B
.
[C,ia,ib] = union(A,B)
C =1×6单元格数组猫,狗,狗,鱼,鱼,马
ia =2 1 3 4
ib =1 3
联盟
将字符向量单元格数组中的尾随空格视为不同字符。
不同类和形状向量的并集
创建一个列向量字符数组。
A = [“一个”;“B”;“C”]
一个=3×1字符数组' a b c '
类(一)
Ans = 'char'
创建包含数字类型元素的行向量双
.
B = [68 69 70]
B =68 69 70
类(B)
Ans = 'double'
的联盟
的一个
而且B
返回一个列向量字符数组。
C = union(A,B)
C =6×1字符数组a b c d e f
类(C)
Ans = 'char'
字符向量的Char和Cell数组的并集
创建一个包含字母的字符向量一个
,b
,c
.
A = [“一个”;“b”;“c”];类(一)
Ans = 'char'
创建包含字母的字符向量的单元格数组c
,d
,e
.
B = {“c”,' d ',“e”};类(B)
Ans = 'cell'
结合以下元素一个
而且B
.
C = union(A,B)
C =5×1单元格数组'a' b' c' d' e'
结果,C
,是字符向量的单元格数组。
类(C)
Ans = 'cell'
保留联盟的遗留行为
使用“遗产”
标记来保存的行为联盟
来自R2012b和之前版本的代码。
求并集一个
而且B
现在的行为。
A = [5 7 1];B = [3 1 1];[C1,ia1,ib1] = union(A,B)
C1 =1 3 5 7
ia1 =3 1 2
Ib1 = 1
求并集一个
而且B
,并保留遗留行为。
A = [5 7 1];B = [3 1 1];[C2, ia2 ib2] =联盟(A, B,“遗产”)
C2 =1 3 5 7
ia2 =1 2
ib2 =3个1
输入参数
A、B
-输入数组
数字数组|逻辑数组|字符数组|字符串数组|分类数组|日期时间数组|持续时间数组|字符向量单元数组|表格|时间表
输入数组,指定为数字数组、逻辑数组、字符数组、字符串数组、分类数组、日期时间数组、持续时间数组、字符向量的单元格数组、表格或时间表。如果您指定“行”
选项,一个
而且B
必须有相同数量的列。
一个
而且B
必须是同一类,但有以下例外:
逻辑
,字符
,并且所有数字类都可以与双
数组。字符向量的单元格数组可以与字符数组或字符串数组组合。
分类数组可以与字符数组、字符向量的单元格数组或字符串数组组合。
Datetime数组可以与日期字符向量的单元格数组或单个日期字符向量组合。
有额外的要求一个
而且B
根据数据类型:
如果
一个
而且B
都是有序分类数组,它们必须具有相同的类别集,包括它们的顺序。如果既不一个
也不B
是顺序的,它们不需要具有相同的类别集,并且使用类别名称执行比较。在本例中,类别为C
分类的排序并集是来自一个
而且B
.如果
一个
而且B
是表或时间表,它们必须有相同的变量名(除了顺序)。对于表,行名将被忽略,因此具有相同值但名称不同的两行被认为是相等的。对于时间表,会考虑行时间,因此具有相同值但时间不同的两行不会被认为相等。如果
一个
而且B
是datetime数组,它们必须在是否指定时区方面彼此一致。
一个
而且B
也可以是具有以下类方法的对象:
排序
(或sortrows
为“行”
选项)不
对象类方法必须彼此一致。这些对象包括派生自相同根类的异构数组。例如,一个
而且B
可以是图形对象的句柄数组。
setOrder
-命令标志
“排序”
(默认)|“稳定”
订单标志,指定为“排序”
或“稳定”
中值(或行)的顺序C
.
订单的旗帜 | 意义 |
---|---|
“排序” |
中的值(或行)C 按顺序返回。例如:C = union([5 5 3],[1 2],'sorted') 返回C = [1 2 3 5] . |
“稳定” |
中的值(或行)C 返回的顺序与它们在中出现的顺序相同一个 而且B .例如:C = union([5 5 3],[1 2],'stable') 返回C = [5 3 1 2] . |
输出参数
C
-综合数据一个
而且B
向量|矩阵|表|时间表
综合数据一个
而且B
,以向量、矩阵、表格或时间表的形式返回。如果输入一个
而且B
是表格还是时间表,那么变量的顺序呢C
和里面变量的顺序一样吗一个
.
下面介绍的形状C
当输入是向量或矩阵时,当“遗产”
Flag未指定:
如果
“行”
那么,没有指定FlagC
列向量,除非两者都是一个
而且B
行向量,在哪种情况下C
是行向量。例如,联盟([],[1 - 2])
返回一个列向量。如果
“行”
则指定FlagC
矩阵是否包含的组合行一个
而且B
.
输入的类一个
而且B
的类别C
:
如果
一个
而且B
那么,是一样的吗C
是同一类。如果你把
字符
或非双数值类双
,然后C
与非双精度输入是同一个类。如果你把
逻辑
类双
,然后C
是双
.如果将字符向量的单元格数组与
字符
,然后C
是字符向量的单元格数组。如果将分类数组与字符向量、字符向量单元格数组或字符串组合,则
C
是分类数组。如果将datetime数组与日期字符向量单元格数组或单个日期字符向量组合,则
C
datetime数组。如果将字符串数组与字符向量或单元格数组的字符向量组合,则
C
是一个字符串数组。
ia
-索引到一个
列向量
索引一个
属性时,作为列向量返回“遗产”
未指定Flag。ia
中的值(或行)一个
对联盟有贡献。中出现多次的值(或行)一个
,然后ia
包含值(或行)第一次出现的索引。如果两者都出现一个值一个
而且B
,然后ia
中第一个出现项的索引一个
.
ib
-索引到B
列向量
索引B
属性时,作为列向量返回“遗产”
未指定Flag。ib
中的值(或行)B
对联盟有贡献。中唯一出现的重复值(或行)B
,然后ib
包含该值第一次出现的索引。如果一个值(或行)同时出现一个
而且B
,然后ib
不包含值(或行)的索引。
提示
要从表或时间表中找到关于变量子集的并集,可以使用列下标。例如,你可以使用
联盟(一个(:,
,在那里var
), B (:,var
))var
是正整数、正整数的向量、变量名、变量名的单元格数组或逻辑向量。或者,您可以使用vartype
创建选择指定类型变量的下标。
扩展功能
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
代码生成不支持第一个或第二个参数的单元格数组。金宝app
时,没有指定
“行”
选择:输入
一个
而且B
必须是方向相同的向量。如果您指定“遗产”
选项,然后输入一个
而且B
必须是行向量。变长行向量的第一维长度必须固定为1。可变大小列向量的第二维长度必须固定为1。
输入
[]
不支持。金宝app例如,使用1 × 0或0 × 1输入,0 (1,0)
,表示空集。如果您指定
“遗产”
选项,那么空输出就是1 × 0的行向量。它们从来不是0乘0。
当你同时指定
“遗产”
选项和“行”
选项,输出ia
而且ib
都是列向量。如果这些输出为空,则为0 × 1。它们从来不是0乘0的,即使输出C
0-by-0。当
setOrder
不是“稳定”
或者当你指定“遗产”
选项,则输入必须已按升序排序。第一个输出,C
,按升序排序。复杂输入必须是
单
或双
.当一个输入是复数,另一个输入是实数时,执行以下操作之一:
集
setOrder
来“稳定”
.以复杂升序(按绝对值)对实际输入进行排序。假设实际输入是
x
.使用排序(复杂的(x))
或sortrows(复杂的(x))
.
看到虚部为零的复杂数据的代码生成(MATLAB编码器)。
R2006a之前介绍
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。