主要内容

outerjoin

两个表或时间表之间的外部连接

描述

例子

T.= outerjoin (Tlefttr创建表或时间表,T.,因为外连接Tlefttr使用关键变量.两个表中具有相同名称的所有变量都是关键变量。外部连接组合键变量具有匹配值的表行,但它也包括一个输入表中的键变量在另一个输入表中不匹配的行。例如,如果Tleft有变量命名Key1Var1, 和tr有变量Key1Var2, 然后t = suffejoin(tleft,trik)用途Key1作为一个关键变量。

左右表中键变量的匹配值不必以相同的顺序。外连接可以在两个表的关键变量之间执行一对多和多种匹配。也就是说,在左表的键变量中发生一次的值可以在右侧表中具有多个匹配。类似地,在右表的键变量中发生一次的值可以在左表中具有多个匹配。

您只能在表格和时间表的某些组合上执行外部连接。

  • 如果Tleft那么,是一张桌子吗tr必须是一张桌子。outerjoin回报T.作为一个表。

  • 如果Tleft那么,有时间表吗tr可以是桌子或时间表。outerjoin回报T.作为输入组合的时间表。

行标签的载体Tlefttr可以是关键变量。行标签是表的行名或时间表的行时间。

例子

T.= outerjoin (Tlefttr名称,价值使用一个或多个指定的附加选项执行外部连接操作名称,价值对论点。

例子

[T.ileftiRight.] =外join(___也返回索引向量,ileftiRight.,表示中行之间的对应关系T.和行Tlefttr分别。您可以使用此语法与上一个语法中的任何输入参数。

例子

全部收缩

创建一个表,Tleft

Tleft =表([5;12;23;2,15;6),...{“麦片”;'比萨';'三文鱼';'oreos';'龙虾';'比萨'},...“VariableNames”,{'年龄''最喜欢的食物'},...“RowNames”,{“艾米”“鲍比”'冬青''哈利''Marty''莎莉'})
tleft =.6×2表Age FavoriteFood ___ ____________ Amy 5 {'cheerios'} Bobby 12 {'pizza'} Holly 23 {'salmon'} Harry 2 {'oreos'} Marty 15 {'lobster'} Sally 6 {'pizza'}

创建一个表,tr,其中有一个变量与Tleft,叫最喜欢的ood

tright =表({“麦片”;'oreos';'比萨';'三文鱼';'蛋糕'},...[110; 160; 140; 367; 243],...{'一种-';'D';“B”;“B”;'C-'},...“VariableNames”,{'最喜欢的食物''卡路里''营养不良'})
Tright =.5×3表最喜欢的食品营养品营养______________________________________________ {'oreos'} 160 {'o'} {'b'} {'b'} {'b'} {'b'} {'b'} {'b'}} {'cake'} 243 {'c-'}

使用outerjoin函数创建新表,T.,来自表的数据Tlefttr

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 {'salmon'} {'salmon'} 367 {'B'}

桌子T.包含来自的键变量的单独变量Tleft,叫FavoriteFood_Tleft,以及来自的关键变量tr,叫FavoriteFood_Tright

创建一个表,Tleft

tleft =表({“一个”“b”“c”'e''H'}',[1 2 3 11 17]',...“VariableNames”,{“Key1”'var1'})
tleft =.5×2表key1 var1 __________ {'a'} 1 {'b'} 2 {'c'} 3 {'e'} 11 {'h'} 17

创建一个表,tr,可变中的常见值Key1表之间Tlefttr,还包含带有值的行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.,来自表的数据Tlefttr.将键值合并到输出表中的单个变量中,T.

T = outerjoin (Tleft Tright,'mergekeys',真正的)
T =6×3表key1 var1 var2 _____ ____ ____ {'a'} 1 4 {'b'} 2 5 {'c'} 3 naN {'d'} nan 6 {'e'} 11 7 {'h'} 17 nan

表中的变量T.来自Tleft包含不匹配的行中的空值tr.同样地,变量T.来自tr在那些与之不匹配的行中包含空值Tleft

创建一个表,Tleft

tleft =表({“一个”“b”“c”'e''H'}',[1 2 3 11 17]',...“VariableNames”,{“Key1”'var1'})
tleft =.5×2表key1 var1 __________ {'a'} 1 {'b'} 2 {'c'} 3 {'e'} 11 {'h'} 17

创建一个表,tr,可变中的常见值Key1表之间Tlefttr,还包含带有值的行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.,来自表的数据Tlefttr.匹配键变量中的公共值的行,Key1,还保留其关键值没有匹配的行。

此外,返回索引矢量,ileftiRight.表示行之间的对应关系T.和行Tlefttr分别。

[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
inleft =.6×11 2 3 0 4 5
iright =6×11 .单词brace联想记忆

指数向量ileftiRight.包含零以指示表中的行T.不对应于表中的行Tlefttr, 分别。

创建一个表,Tleft

tleft =表({“一个”“b”“c”'e''H'}',[1 2 3 11 17]',...“VariableNames”,{“Key1”'var1'})
tleft =.5×2表key1 var1 __________ {'a'} 1 {'b'} 2 {'c'} 3 {'e'} 11 {'h'} 17

创建一个表,tr,可变中的常见值Key1表之间Tlefttr,还包含带有值的行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.,来自表的数据Tlefttr.忽略行tr谁的键值不匹配的任何行Tleft

此外,返回索引矢量,ileftiRight.表示行之间的对应关系T.和行Tlefttr分别。

[T ileft iright] = outerjoin (Tleft Tright,'类型''剩下'
T =5×4表key1_tleft var1 key1_tright var2 __________ __________________________________ ____ {'a'} 4 {'b'} 2 {'b'} 5 {'c'} 3 {0x0 char} naN {'e'} 11 {'e'} 7 {'h'} 17 {0x0 char} nan
inleft =.5×11 2 3 4 5
iright =5×11 2 0 4 0

所有值ileft非零表示所有行T.有相应的行Tleft

创建两个时间表,Tlefttr.它们有一些共同的行,但每个都包括不在其他时间表中的行时间。

Tleft = timestamp ([1;2;4;6]),[1 2 3 11])
tleft =.4×1的时间表时间var1 _____ ____ 1秒1 2秒2 4 sec 3 6秒11
Trik =时间表(秒([2; 4; 6; 7]),[4 5 6 7]')
Tright =.4×1的时间表时间var1 _____ ____ 2秒4 4 sec 5 6 sec 6 7 sec 7

结合Tlefttr外连接。T1匹配常用行时间的行,但还包括没有匹配的行。

t1 = suffejoin(tleft,trik)
t1 =5×2时间表time var1_tleft var1_tright __________________ ____________________________________________________ 2秒钟2 sec 2 4 4 sec 3 5 6 sec 11 6 7 sec naN 7

结合Tlefttr,但忽略行tr谁的行用时不匹配其中的任何行用时Tleft

t2 = suffejoin(tleft,trik,'类型''剩下'
T2 =4×2时间表time var1_tleft var1_tright _______________ ___________ _________秒钟1 an 2 sec 2 4 4 sec 3 5 6 sec 11 6

输入参数

全部收缩

左表,指定为表或时间表。

右图,指定为表或时间表。

名称值对参数

指定可选的逗号分离对名称,价值论点。的名字是参数名称和价值为对应值。的名字必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:“钥匙”,2使用第二个变量Tleft第二个变量tr作为关键变量。

作为键的变量指定为逗号分隔的配对“钥匙”和一个正整数,正整数的向量,字符向量,字符向量的单元数组,字符串数组,或逻辑向量。

你不能使用“钥匙”的名称-值对参数“LeftKeys”“RightKeys”名称值对参数。

行标签的向量可以是密钥,单独或与其他关键变量组合。有关更多信息,请参阅提示部分。

例子:'keys',[1 3]使用第一个和第三变量Tlefttr作为关键变量。

例子:'keys',{'x','y'}使用命名的变量XyTlefttr作为关键变量。

例子:'钥匙','行'使用行名称的向量Tlefttr作为关键变量,如果两者都是Tlefttr是具有行名称的表。

变量用作键Tleft,指定为逗号分隔的配对组成“LeftKeys”和一个正整数,正整数的向量,字符向量,字符向量的单元数组,字符串数组,或逻辑向量。

你必须使用“LeftKeys”名称 - 值对参数结合使用“RightKeys”名称值对参数。“LeftKeys”“RightKeys”两者必须指定相同数量的关键变量。outerjoin对基于其订单的对键值。

行标签的向量可以是密钥,单独或与其他关键变量组合。有关更多信息,请参阅提示部分。

例子:'左键',1仅使用第一个变量Tleft作为一个关键变量。

变量用作键tr,指定为逗号分隔的配对组成“RightKeys”和一个正整数,正整数的向量,字符向量,字符向量的单元数组,字符串数组,或逻辑向量。

你必须使用“RightKeys”名称 - 值对参数结合使用“LeftKeys”名称值对参数。“LeftKeys”“RightKeys”两者必须指定相同数量的关键变量。outerjoin对基于其订单的对键值。

行标签的向量可以是密钥,单独或与其他关键变量组合。有关更多信息,请参阅提示部分。

例子:'lightneys',3中的第三个变量tr作为一个关键变量。

合并键标志,指定为逗号分隔对组成'mergekeys'和任何一种错误的真正的0.1

错误的

outerjoin在输出表中包含两个独立的变量,T.,对于来自表的每个键变量对Tlefttr

此行为是默认行为。

真正的

outerjoin在输出表中包含一个变量,T.,对于来自表的每个键变量对Tlefttr

outerjoin通过合并键值来创建单个变量Tlefttr,取得价值Tleft存在相应的行Tleft,并取得价值tr除此以外。

  • 如果您指定“LeftVariables”'rightvariables'要只包含键变量对中的一个键,则outerjoin在输出表中包含来自两个键变量的合并键包含值。

  • 如果您指定“LeftVariables”'rightvariables'从键变量对中排除两个键,然后outerjoin在输出表中不包含合并的键变量。

变量Tleft包括在T.,指定为逗号分隔的配对组成“LeftVariables”和一个正整数,正整数的向量,字符向量,字符向量的单元数组,字符串数组,或逻辑向量。

您可以使用“LeftVariables”要从输出中包含或排除键变量和非键变量,T.

默认情况下,outerjoin包括所有变量Tleft

变量tr包括在T.,指定为逗号分隔的配对组成'rightvariables'和一个正整数,正整数的向量,字符向量,字符向量的单元数组,字符串数组,或逻辑向量。

您可以使用'rightvariables'要从输出中包含或排除键变量和非键变量,T.

默认情况下,outerjoin包括所有变量tr

外连接操作类型,指定为逗号分隔对'类型'和任何一种'满的'(意味着一个完整的外连接),'剩下'(左外连接),或'对'(右外连接)。

  • 对于全外套,T.包括两个表中的所有键值,如下图所示。

  • 对于左外连接,T.包含键值Tleft与任何关键值不符tr,但排除关键值tr与任何关键值不符Tleft.例如,在下图中,左外连接不包括键值7.从右边的桌子。

  • 对于正确的外连接,T.包含键值tr与任何关键值不符Tleft,但排除关键值Tleft与任何关键值不符tr.例如,在下图中,右外连接不包括键值1从左桌子。

默认情况下,outerjoin是否完整的外部连接并包括两个来自两者的行Tlefttr

输出参数

全部收缩

外加入Tlefttr,返回为表。输出表,T.,包含表中每对行的一行Tlefttr共享相同的关键值组合。如果Tlefttr包含具有相同名称的变量,outerjoin中的对应变量名添加唯一后缀T..变量T.来自Tleft在那些与之不匹配的行中包含空值tr.同样地,变量T.来自tr在那些与之不匹配的行中包含空值Tleft

一般来说,如果有m在表格中行TleftN在表格中行tr所有这些都包含密钥变量中的相同的值组合T.包含m * n该组合的行。T.还包含与一个输入表中的键值组合相对应的行,这些行不与另一个输入表中的任何行相匹配。

T.包含的水平连接Tleft (ileft LeftVars)Tright(iright,rightvars)按关键变量中的值排序。默认情况下,左转由的所有变量组成Tleft, 和Rightvars.由所有变量组成tr.除此以外,左转包括由此指定的变量组成“LeftVariables”名称-值对参数,和Rightvars.包括由此指定的变量组成'rightvariables'名称值对参数。

您可以存储表中的附加元数据,例如表格,可变单位,变量名称和行名称。有关更多信息,请参阅“属性”部分桌子

索引Tleft,作为列向量返回。的每个元素ileft标识表中的行Tleft这对应于输出表中的该行,T..矢量ileft包含0以指示中的行T.不对应于行Tleft

索引tr,作为列向量返回。的每个元素iRight.标识表中的行tr这对应于输出表中的该行,T..矢量iRight.包含0以指示中的行T.不对应于行tr

更多关于

全部收缩

关键变量

用于匹配和组合输入表之间的数据,Tlefttr

提示

  • 来自输入表或时间表的行标签向量可以是密钥,单独或与其他关键变量结合使用。行标签是表的行名称或时间表的行时间。将此矢量用作键,将其指定为'排'(对于表的行名称),作为行时间的时间表矢量的名称,或者作为值的名称T..Properties.DimensionNames {1}, 在哪里T.是表还是时间表。

    一般来说,outerjoin从输入表复制行标签Tleft到输出表T.

    • 如果Tleft没有行标签,那么T.没有行标签。

    • 如果Tleft有行标签吗outerjoinTleft创建行标签T.

      • 如果您从两者指定行标签Tlefttr作为一个关键对,然后outerjoin合并行标签tr进入行标签T.需要的地方。

      • 如果指定行标签Tleft作为一个关键,但不要指定行标签tr作为匹配的键,然后outerjoin中创建默认行标签T.需要的地方。

      • 如果两者Tlefttr是表格,但您没有将输入表的行名称指定为键,然后outerjoin不创建行名称T.

    的行标签不能执行外部连接Tleft作为左键和一个变量tr作为右键。要执行外连接,请转换行标签Tleft到表变量并使用新表变量作为键。

扩展能力

也可以看看

||

介绍在R2013B.