outerjoin
两个表或时间表之间的外部连接
语法
描述
创建表格或时间表,T
= outerjoin (Tleft
,Tright
)T
,因为外连接的Tleft
而且Tright
使用关键变量.两个表中名称相同的变量都是关键变量。外部连接组合键变量具有匹配值的表行,但它也包括来自一个输入表的键变量在另一个输入表中没有匹配的行。例如,如果Tleft
有变量命名Key1
而且Var1
,Tright
有变量Key1
而且Var2
,然后T = outerjoin (Tleft Tright)
使用Key1
作为一个关键变量。
左右表中关键变量的匹配值不必顺序相同。外部连接可以在两个表的关键变量之间执行一对多和多对一的匹配。也就是说,在左表的键变量中出现一次的值可以在右表中有多次匹配。类似地,在右表的键变量中出现一次的值可以在左表中有多次匹配。
只能在表和时间表的某些组合上执行外部连接。
如果
Tleft
那么,是桌子吗Tright
一定是一张桌子。outerjoin
返回T
作为一个表。如果
Tleft
那是时刻表吗Tright
可以是一张表格,也可以是一张时间表。outerjoin
返回T
作为两种投入组合的时间表。
的行标签的向量Tleft
而且Tright
可以是关键变量。行标签是表的行名,或者时间表的行时间。
例子
具有一个共同变量的表的外部连接操作
创建一个表,Tleft
.
Tleft =表([5;12;23;2,15;6),...{“麦片”;“披萨”;“鲑鱼”;“奥利奥”;“龙虾”;“披萨”},...“VariableNames”,{“年龄”,“FavoriteFood”},...“RowNames”,{“艾米”,“鲍比”,“冬青”,“哈利”,“马蒂”,“莎莉”})
Tleft =6×2表年龄最喜欢的食物___ ____________ Amy 5 {'cheerios'} Bobby 12 {'pizza'} Holly 23 {'salmon'} Harry 2 {'oreos'} Marty 15 {'lobster'} Sally 6 {'pizza'}
创建一个表,Tright
,有一个共同的变量Tleft
,被称为FavoriteFood
.
({Tright =表“麦片”;“奥利奥”;“披萨”;“鲑鱼”;“蛋糕”},...(110; 160; 140; 367; 243),...{“- - -”;' D ';“B”;“B”;“C -”},...“VariableNames”,{“FavoriteFood”,“卡路里”,“NutritionGrade”})
Tright =5×3表FavoriteFood卡路里NutritionGrade ____________ ________ ______________ {' cheerios} 110{“-”}{“奥利奥”}160 {' D '}{“披萨”}140 {B}{“鲑鱼”}367 {B}{‘蛋糕’}243 {' C - '}
使用outerjoin
函数来创建一个新表,T
,数据来自表格Tleft
而且Tright
.
T = outerjoin (Tleft Tright)
T =7×5表年龄FavoriteFood_Tleft NutritionGrade FavoriteFood_Tright卡路里 ___ __________________ ___________________ ________ ______________ 南{0 x0 char}{‘蛋糕’}243 {' C -}{“麦片”}{“麦片”}110{“-”}15{“龙虾”}{0 x0 char}南2 {0 x0 char}{“奥利奥”}{“奥利奥”}160 {' D '}{“披萨”}{“披萨”}140 {B}{“披萨”}{“披萨”}140 {B} 23{“鲑鱼”}{“鲑鱼”}367 {B}
表格T
包含用于键变量的单独变量Tleft
,被称为FavoriteFood_Tleft
,关键变量从Tright
,被称为FavoriteFood_Tright
.
将关键变量对合并为单个变量
创建一个表,Tleft
.
({Tleft =表“一个”“b”“c”“e”“h”}',[1 2 3 11 17]',...“VariableNames”,{“Key1”“Var1”})
Tleft =5×2表Key1 Var1 _____ ____ {' 2 '} 1 {b} {' c '} 3{“e”}11 {' h '} 17
创建一个表,Tright
,在变量中使用公共值Key1
表之间的Tleft
而且Tright
,但也包含值为的行Key1
没有出现在Tleft
.
({Tright =表“一个”,“b”,' d ',“e”},(4、5、6、7)...“VariableNames”,{“Key1”“Var2”})
Tright =4×2表Key1 Var2 _____ ____ {' 5 ' 4 {b}} {' d '} 6{“e”}7
使用outerjoin
函数来创建一个新表,T
,数据来自表格Tleft
而且Tright
.将关键值合并到输出表中的单个变量中,T
.
T = outerjoin (Tleft Tright,“MergeKeys”,真正的)
T =6×3表Key1 Var1 Var2 _____ ____ ____ {' “{b}} 1 4 2 5 {' c '} 3南{' d '}南6{“e”}11 7 {' h '} 17 NaN
变量在表T
来自Tleft
在没有匹配的行中包含空值Tright
.同样,变量T
来自Tright
在那些没有匹配的行中包含空值Tleft
.
表和索引到值的外部连接操作
创建一个表,Tleft
.
({Tleft =表“一个”“b”“c”“e”“h”}',[1 2 3 11 17]',...“VariableNames”,{“Key1”“Var1”})
Tleft =5×2表Key1 Var1 _____ ____ {' 2 '} 1 {b} {' c '} 3{“e”}11 {' h '} 17
创建一个表,Tright
,在变量中使用公共值Key1
表之间的Tleft
而且Tright
,但也包含值为的行Key1
没有出现在Tleft
.
({Tright =表“一个”,“b”,' d ',“e”},(4、5、6、7)...“VariableNames”,{“Key1”“Var2”})
Tright =4×2表Key1 Var2 _____ ____ {' 5 ' 4 {b}} {' d '} 6{“e”}7
使用outerjoin
函数来创建一个新表,T
,数据来自表格Tleft
而且Tright
.用键变量中的公共值匹配行,Key1
,但也保留键值不匹配的行。
同样,返回索引向量,ileft
而且iright
中行之间的对应关系T
和行Tleft
而且Tright
分别。
[T ileft iright] = outerjoin (Tleft Tright)
T =6×4表Key1_Tleft Var1 Key1_Tright Var2 __________ ____ ___________ ____ {' “1}{a} 4 {b} 2 {b} 5 {' c '} 3 {0 x0 char}南{0 x0 char}南6 {' d '}{“e”}11{“e”}7 {' h '} 17 {0 x0 char} NaN
ileft =6×11 2 3 0 4 5
iright =6×11 2 0 3 4 0
索引向量ileft
而且iright
包含0来表示表中的行T
与表中的行不对应的Tleft
或Tright
,分别。
表和索引到值的左外连接操作
创建一个表,Tleft
.
({Tleft =表“一个”“b”“c”“e”“h”}',[1 2 3 11 17]',...“VariableNames”,{“Key1”“Var1”})
Tleft =5×2表Key1 Var1 _____ ____ {' 2 '} 1 {b} {' c '} 3{“e”}11 {' h '} 17
创建一个表,Tright
,在变量中使用公共值Key1
表之间的Tleft
而且Tright
,但也包含值为的行Key1
没有出现在Tleft
.
({Tright =表“一个”,“b”,' d ',“e”},(4、5、6、7)...“VariableNames”,{“Key1”“Var2”})
Tright =4×2表Key1 Var2 _____ ____ {' 5 ' 4 {b}} {' d '} 6{“e”}7
使用outerjoin
函数来创建一个新表,T
,数据来自表格Tleft
而且Tright
.忽视行Tright
哪些键值与其中的任何行都不匹配Tleft
.
同样,返回索引向量,ileft
而且iright
中行之间的对应关系T
和行Tleft
而且Tright
分别。
[T ileft iright] = outerjoin (Tleft Tright,“类型”,“左”)
T =5×4表Key1_Tleft Var1 Key1_Tright Var2 __________ ____ ___________ ____ {' “1}{a} 4 {b} 2 {b} 5 {' c '} 3 {0 x0 char}南11{“e”}{“e”}7 {' h '} 17 {0 x0 char} NaN
ileft =5×11 2 3 4 5
iright =5×11 2 0 4 0
所有的值ileft
非零是否表示所有行都在T
中有相应的行Tleft
.
表的外部连接操作
创建两个时间表,Tleft
而且Tright
.它们有一些相同的行时间,但每一个都包含另一个时间表中没有的行时间。
Tleft =时间表(seconds([1;2;4;6]),[1 2 3 11]')
Tleft =4×2时间表时间Var1 _____ ____ 1秒1 2秒2 4秒3 6秒11
right =时间表(seconds([2;4;6;7]),[4 5 6 7]')
Tright =4×2时间表时间Var1 _____ ____ 2秒4 4秒5 6秒6 7秒7
结合Tleft
而且Tright
通过外部连接。T1
用公共行时间匹配行,但也包括没有匹配的行。
T1 = outerjoin (Tleft Tright)
T1 =5×3的时间表时间Var1_Tleft Var1_Tright _____ __________ ___________ 1秒1 NaN 2秒2 4 4秒3 5 6秒11 6 7秒NaN 7
结合Tleft
而且Tright
,但忽略行Tright
谁的行时间与其中的任何行时间不匹配Tleft
.
T2 = outerjoin (Tleft Tright,“类型”,“左”)
T2 =4×3的时间表时间Var1_Tleft Var1_Tright _____ __________ ___________ 1秒1 NaN 2秒2 4 4秒3 5 6秒11 6
输入参数
Tleft
- - - - - -左表
表格|时间表
左表,指定为表格或时间表。
Tright
- - - - - -正确的表
表格|时间表
正确的表格,指定为表格或时间表。
名称-值对的观点
指定逗号分隔的可选对名称,值
参数。的名字
参数名称和价值
对应的值。的名字
必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家
.
“钥匙”,2
中使用第二个变量Tleft
第二个变量Tright
作为关键变量。
“钥匙”
- - - - - -用作键的变量
正整数|正整数向量|特征向量|字符向量的单元格数组|字符串数组|逻辑向量
要用作键的变量,指定为逗号分隔的一对,由“钥匙”
以及正整数、正整数的向量、字符向量、字符向量的单元格数组、字符串数组或逻辑向量。
您不能使用“钥匙”
参数的名称-值对参数“LeftKeys”
而且“RightKeys”
名称-值对参数。
行标签的向量可以是键,单独使用也可以与其他键变量组合使用。有关更多信息,请参见提示部分。
例子:“钥匙”,[1 3]
中使用第一个和第三个变量Tleft
而且Tright
作为关键变量。
例子:“钥匙”,{' X ', ' Y '}
使用命名为X
而且Y
在Tleft
而且Tright
作为关键变量。
例子:“钥匙”,“行”
的行名的向量Tleft
而且Tright
作为关键变量,如果两者都有Tleft
而且Tright
是具有行名的表。
“LeftKeys”
- - - - - -用作键的变量Tleft
正整数|正整数向量|特征向量|字符向量的单元格数组|字符串数组|逻辑向量
用作键的变量Tleft
,指定为逗号分隔的对,由“LeftKeys”
以及正整数、正整数的向量、字符向量、字符向量的单元格数组、字符串数组或逻辑向量。
你必须使用“LeftKeys”
参数的名称-值对参数“RightKeys”
名称-值对的论点。“LeftKeys”
而且“RightKeys”
两者必须指定相同数量的关键变量。outerjoin
根据键值的顺序对键值。
行标签的向量可以是键,单独使用也可以与其他键变量组合使用。有关更多信息,请参见提示部分。
例子:“LeftKeys”,1
中只使用第一个变量Tleft
作为一个关键变量。
“RightKeys”
- - - - - -用作键的变量Tright
正整数|正整数向量|特征向量|字符向量的单元格数组|字符串数组|逻辑向量
用作键的变量Tright
,指定为逗号分隔的对,由“RightKeys”
以及正整数、正整数的向量、字符向量、字符向量的单元格数组、字符串数组或逻辑向量。
你必须使用“RightKeys”
参数的名称-值对参数“LeftKeys”
名称-值对的论点。“LeftKeys”
而且“RightKeys”
两者必须指定相同数量的关键变量。outerjoin
根据键值的顺序对键值。
行标签的向量可以是键,单独使用也可以与其他键变量组合使用。有关更多信息,请参见提示部分。
例子:“RightKeys”,3
中只使用第三个变量Tright
作为一个关键变量。
“MergeKeys”
- - - - - -合并键标志
假
(默认)|真正的
|0
|1
合并键标志,指定为逗号分隔的一对,由“MergeKeys”
,要么假
,真正的
,0
或1
.
|
此行为是默认行为。 |
|
|
“LeftVariables”
- - - - - -变量Tleft
包括在T
正整数|正整数向量|特征向量|字符向量的单元格数组|字符串数组|逻辑向量
变量Tleft
包括在T
,指定为逗号分隔的对,由“LeftVariables”
以及正整数、正整数的向量、字符向量、字符向量的单元格数组、字符串数组或逻辑向量。
您可以使用“LeftVariables”
要在输出中包含或排除关键变量和非关键变量,T
.
默认情况下,outerjoin
包括来自的所有变量Tleft
.
“RightVariables”
- - - - - -变量Tright
包括在T
正整数|正整数向量|特征向量|字符向量的单元格数组|字符串数组|逻辑向量
变量Tright
包括在T
,指定为逗号分隔的对,由“RightVariables”
以及正整数、正整数的向量、字符向量、字符向量的单元格数组、字符串数组或逻辑向量。
您可以使用“RightVariables”
要在输出中包含或排除关键变量和非关键变量,T
.
默认情况下,outerjoin
包括来自的所有变量Tright
.
“类型”
- - - - - -外部连接操作的类型
“全部”
(默认)|“左”
|“对”
外部连接操作的类型,指定为逗号分隔的对,由“类型”
,要么“全部”
(意思是完全的外部连接),“左”
(左外连接),或“对”
(右外连接)。
对于完整的外部连接,
T
包括两个表中的所有键值,如下图所示。对于左外连接,
T
中包含键值Tleft
中不匹配任何键值的Tright
中的键值除外Tright
中不匹配任何键值的Tleft
.例如,在下面的图表中,左外部连接排除键值7
从右边的桌子。对于右外连接,
T
中包含键值Tright
中不匹配任何键值的Tleft
中的键值除外Tleft
中不匹配任何键值的Tright
.例如,在下面的图表中,右外部连接排除键值1
从左边的桌子。
默认情况下,outerjoin
是否完整的外部连接并包含来自两者的不匹配行Tleft
而且Tright
.
输出参数
T
-外部连接Tleft
而且Tright
表格
外连接的Tleft
而且Tright
,作为表返回。输出表,T
,为表中的每对行包含一行Tleft
而且Tright
它们共享相同的键值组合。如果Tleft
而且Tright
包含同名的变量,outerjoin
中对应的变量名添加唯一后缀T
.变量T
来自Tleft
在那些没有匹配的行中包含空值Tright
.同样,变量T
来自Tright
在那些没有匹配的行中包含空值Tleft
.
一般来说,如果有的话米
行表Tleft
而且n
行表Tright
即所有包含相同组合值的关键变量,表T
包含m * n
这个组合的行数。T
还包含一个输入表中与另一个输入表中的任何行不匹配的键值组合对应的行。
T
的水平拼接Tleft (ileft LeftVars)
而且Tright (iright RightVars)
按键变量中的值排序。默认情况下,LeftVars
由的所有变量组成Tleft
,RightVars
由所有的变量组成Tright
.否则,LeftVars
控件指定的变量组成“LeftVariables”
名称-值对参数,和RightVars
控件指定的变量组成“RightVariables”
名称-值对的论点。
可以在表中存储其他元数据,如描述、变量单位、变量名和行名。有关更多信息,请参见的“属性”部分表格
.
ileft
——指数Tleft
列向量
索引Tleft
,作为列向量返回。的每个元素ileft
标识表中的行Tleft
它对应于输出表中的那一行,T
.向量ileft
包含0来表示中的行T
里面的行不对应Tleft
.
iright
——指数Tright
列向量
索引Tright
,作为列向量返回。的每个元素iright
标识表中的行Tright
它对应于输出表中的那一行,T
.向量iright
包含0来表示中的行T
里面的行不对应Tright
.
更多关于
关键变量
变量,用于匹配和组合输入表之间的数据,Tleft
而且Tright
.
提示
来自输入表或时间表的行标签向量可以是一个键,也可以与其他键变量结合使用。行标签是表的行名或时间表的行时间。若要将此向量用作键,请将其指定为“行”
(对于表的行名),作为行时间的时间表向量的名称,或作为的值
,在那里T
.Properties.DimensionNames {1}
是表格或时间表。T
一般来说,outerjoin
从输入表复制行标签Tleft
到输出表T
.
如果
Tleft
那么,是否没有行标签T
没有行标签。如果
Tleft
那么是否有行标签outerjoin
从Tleft
中创建行标签T
.如果从两者中指定行标签
Tleft
而且Tright
那么,作为密钥对outerjoin
从合并行标签Tright
的行标签T
在需要的地方。的行标签
Tleft
的行标签,但不指定Tright
作为匹配的键,那么outerjoin
中创建默认行标签T
在需要的地方。如果两个
Tleft
而且Tright
是表,但没有指定任何输入表的行名作为键,那么outerjoin
中未创建行名T
.
的行标签不能执行外部连接Tleft
作为左键和变量Tright
作为右键。的行标签要执行外部连接,请转换Tleft
,并使用新表变量作为键。
扩展功能
高大的数组
使用行数超过内存容量的数组进行计算。
这个函数完全支持高数组。金宝app有关更多信息,请参见高大的数组.
介绍了R2013b
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。