主要内容

外延

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

描述

例子

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

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

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

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

  • 如果Tleft那么,有时间表吗tr可以是桌子或时间表。外延回报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,叫最受欢迎的

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

使用外延函数创建新表,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

使用外延函数创建新表,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南部

表中的变量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

使用外延函数创建新表,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

使用外延函数创建新表,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的时间表Time Var1 _____ ____ 1秒1 2秒2 4秒3 6秒11
Trik =时间表(秒([2; 4; 6; 7]),[4 5 6 7]')
Tright =.4×1的时间表时间var1 _____ ____ 2秒4 sec 4 4 sec 5 6 sec 6 7 sec 7

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

t1 = sufferjoin(tleft,trik)
t1 =5×2时间表Time var1_tleft var1_tright ______________________________________________秒钟1 an 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”'lightneys'名称值对参数。

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

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

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

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

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

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

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

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

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

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

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

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

合并键标志,指定为逗号分隔的配对组成“MergeKeys”和任何一个错误的真正的0.1

错误的

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

此行为是默认行为。

真正的

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

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

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

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

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

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

默认情况下,外延包括来自的所有变量Tleft

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

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

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

外部连接操作的类型,指定为逗号分隔对组成'类型'和任何一个“全部”(意味着一个完整的外连接),“左”(左外连接),或“对”(右外连接)。

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

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

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

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

输出参数

全部收缩

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

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

T.包含的水平连接TLEFT(ILEFT,LEFFVARS)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.是表还是时间表。

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

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

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

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

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

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

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

扩展能力

也可以看看

||

介绍了R2013b