innerjoin
两个表或时间表之间的内部连接
描述
创建表格或时间表,T
= innerjoin (Tleft
,Tright
)T
,如内连接的Tleft
而且Tright
使用关键变量.在两个输入中名称相同的所有变量都是关键变量。内部连接组合键变量具有匹配值的行。例如,如果Tleft
具有命名为Key1
而且Var1
,Tright
有变量Key1
而且Var2
,然后T = innerjoin (Tleft Tright)
使用Key1
作为一个关键变量。
左表和右表中关键变量的匹配值的顺序不必相同。内部连接可以在两个表的关键变量之间执行一对多和多对一匹配。也就是说,在左表的关键变量中出现一次的值可以在右表中有多次匹配。类似地,在右表的关键变量中出现一次的值可以在左表中有多次匹配。
只能对表和时间表的某些组合执行内部连接。
如果
Tleft
那是桌子吗Tright
一定是一张桌子。innerjoin
返回T
作为一张桌子。如果
Tleft
那么,有时间表吗Tright
既可以是表格,也可以是时间表。innerjoin
返回T
作为两种投入组合的时间表。
的行标签的向量Tleft
而且Tright
可能是关键变量。行标签是表的行名,或时间表的行时间。
例子
具有相同变量的表的内部连接操作
创建一个表,Tleft
.
Tleft = table([5;12;23;2;6],...{“麦片”;“披萨”;“鲑鱼”;“饼干”;“披萨”},...“VariableNames”,{“年龄”,“FavoriteFood”})
Tleft =5×2表年龄FavoriteFood ___ ____________ 12 5{“麦片”}{“披萨”}23{“鲑鱼”}2{‘饼干’}6{'披萨'}
创建一个表,Tright
的一个变量Tleft
.
Tright = table({“麦片”;“饼干”;“披萨”;“鲑鱼”;“蛋糕”},...(110; 160; 140; 367; 243),...{“- - -”;' D ';“B”;“B”;“C -”},...“VariableNames”,{“FavoriteFood”,“卡路里”,“NutritionGrade”})
Tright =5×3表FavoriteFood卡路里NutritionGrade ____________ ________ ______________ {' 谷物}110{“-”}{‘饼干’}160 {' D '}{“披萨”}140 {B}{“鲑鱼”}367 {B}{‘蛋糕’}243 {' C - '}
使用innerjoin
函数创建一个新表,T
,数据来自表格Tleft
而且Tright
.
T = innerjoin(Tleft,Tright)
T =5×4表年龄FavoriteFood卡路里NutritionGrade ___ ____________ ________ ______________ 110{“麦片”}{“-”}{‘饼干’}160 {' D '} 140{“披萨”}{B}{“披萨”}140 {B} 23 367{“鲑鱼”}{B}
表格T
是根据键变量排序的,FavoriteFood
.
表和索引到值的内部连接操作
创建一个表,Tleft
.
Tleft = table({“一个”“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 = table({“一个”“b”' d '“e”}',[4 5 6 7]',...“VariableNames”,{“Key1”“Var2”})
Tright =4×2表Key1 Var2 _____ ____ {' 5 ' 4 {b}} {' d '} 6{“e”}7
使用innerjoin
函数创建一个新表,T
,数据来自表格Tleft
而且Tright
.只保留值在变量中的行Key1
匹配。
同样,返回下标向量,ileft
而且iright
中各行之间的对应关系T
排在里面Tleft
而且Tright
分别。
[T,左,右]= innerjoin(左,右)
T =3×3表Key1 Var1 Var2 _____ ____ ____ {' '} 1 4 {b} 2 5{“e”}11 7
ileft =3×11 2 4
iright =3×11 2 4
表格T
按键变量中的值排序,Key1
的水平级联Tleft (ileft:)
而且Tright (iright Var2)
.
使用左右键的表内部连接操作
创建一个表,Tleft
.
Tleft =表([10;4;2;3;7]、[5;4、9、6;1],[10;3、8、8;4))
Tleft =5×3表Var1 Var2 Var3 ____ ____ ____ 10 5 10 4 4 3 2 9 8 3 6 8 7 1 4
创建一个表,Tright
,将第二个变量中常见的值作为表的第一个变量Tleft
.
Tright = table([6;1;1;6;8],[2;3;4;5;6])
Tright =5×2表Var1 Var2 ____ ____ 6 2 1 3 1 4 6 5 8 6
使用innerjoin
函数创建一个新表,T
,数据来自表格Tleft
而且Tright
.的第一个变量Tleft
第二个变量Tright
作为关键变量。
[T,左,右]= innerjoin(左,右,右,左,右,右,左,右,“LeftKeys”, 1“RightKeys”,2)
T =3×4表Var1_Tleft Var2 Var3 Var1_Tright __________ ____ ____ ___________ 2 9 8 6 3 6 8 1 4 4 3 1
ileft =3×13 4 2
iright =3×11 2 3
表格T
仅保留之间匹配的行Tleft
而且Tright
关于关键变量。
表格T
的水平级联Tleft (ileft:)
而且Tright (iright Var1)
.
时间表的内部连接操作
创建两个时间表,Tleft
而且Tright
.它们有一些相同的划船时间,但每个都包括其他时间表中没有的划船时间。
Tleft =时间表(秒([1;2;4;6]),[1 2 3 11]')
Tleft =4×1的时间表时间Var1 _____ ____ 1秒1 2秒2 4秒3 6秒11
Tright =时间表(秒([2;4;6;7]),[4 5 6 7]')
Tright =4×1的时间表时间Var1 _____ ____ 2 sec 4 4 sec 5 6 sec 6 7 sec 7
结合Tleft
而且Tright
使用内部连接。T
将行与公共行时间匹配。T
不包含来自两个时间表的任何其他行。
T = innerjoin(Tleft,Tright)
T =3×2时间表时间Var1_Tleft Var1_Tright _____ __________ ___________ 2秒2 4 4秒3 5 6秒11 6
输入参数
Tleft
- - - - - -左表
表格|时间表
左表,指定为表或时间表
Tright
- - - - - -正确的表
表格|时间表
右表,指定为表或时间表
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来名字
在报价。
例子:“钥匙”,2
使用第二个变量Tleft
第二个变量Tright
作为关键变量。
键
- - - - - -用作键的变量
正整数|正整数向量|字符串数组|特征向量|字符向量的单元格数组|模式
标量|逻辑向量
用作键的变量,指定为逗号分隔的对,由“钥匙”
一个正整数,正整数的向量,字符串数组,字符向量,字符向量的单元格数组,模式
标量,或者逻辑向量。
您不能使用“钥匙”
参数的名称-值对“LeftKeys”
而且“RightKeys”
名称-值对参数。
行标签的向量可以是一个键,单独使用也可以与其他键变量结合使用。有关更多信息,请参见提示部分。
例子:“钥匙”,[1 3]
中的第一个和第三个变量Tleft
而且Tright
作为关键变量。
例子:“钥匙”,{' X ', ' Y '}
使用命名为X
而且Y
在Tleft
而且Tright
作为关键变量。
例子:“钥匙”,“行”
的行名的向量Tleft
而且Tright
作为关键变量,如果两者都是Tleft
而且Tright
是具有行名的表。
LeftKeys
- - - - - -用作键的变量Tleft
正整数|正整数向量|字符串数组|特征向量|字符向量的单元格数组|模式
标量|逻辑向量
RightKeys
- - - - - -用作键的变量Tright
正整数|正整数向量|字符串数组|特征向量|字符向量的单元格数组|模式
标量|逻辑向量
LeftVariables
- - - - - -变量Tleft
包括在T
正整数|正整数向量|字符串数组|特征向量|字符向量的单元格数组|模式
标量|逻辑向量
变量Tleft
包括在T
,指定为逗号分隔的对,由“LeftVariables”
一个正整数,正整数的向量,字符串数组,字符向量,字符向量的单元格数组,模式
标量,或者逻辑向量。
你可以使用“LeftVariables”
为了从输出中包含或排除关键变量以及非关键变量,T
.
默认情况下,innerjoin
包括所有变量Tleft
.
RightVariables
- - - - - -变量Tright
包括在T
正整数|正整数向量|字符串数组|特征向量|字符向量的单元格数组|模式
标量|逻辑向量
变量Tright
包括在T
,指定为逗号分隔的对,由“RightVariables”
一个正整数,正整数的向量,字符串数组,字符向量,字符向量的单元格数组,模式
标量,或者逻辑向量。
你可以使用“RightVariables”
为了从输出中包含或排除关键变量以及非关键变量,T
.
默认情况下,innerjoin
包含来自的所有变量Tright
除了关键变量。
输出参数
T
-内部连接Tleft
而且Tright
表|时间表
内连接来自Tleft
而且Tright
,作为表格或时间表归还。输出表或时间表,T
中的每对行包含一行Tleft
而且Tright
它们在关键变量中共享相同的值组合。如果Tleft
而且Tright
包含同名的变量,innerjoin
中对应的变量名添加唯一的后缀T
.
一般来说,如果有米
行Tleft
而且n
行Tright
它们在关键变量中都包含相同的值组合T
包含m * n
这个组合的行数。
T
按关键变量中的值排序,并包含的水平连接Tleft (ileft LeftVars)
而且Tright (iright RightVars)
.默认情况下,LeftVars
由的所有变量组成Tleft
,RightVars
的所有非关键变量组成Tright
.否则,LefttVars
属性指定的变量组成“LeftVariables”
名称-值对参数,和RightVars
变量是否由“RightVariables”
名称-值对参数。
ileft
-索引到Tleft
列向量
索引Tleft
,作为列向量返回。的每个元素ileft
中标识行的Tleft
对应于输出表或时间表中的那一行,T
.
iright
-索引到Tright
列向量
索引Tright
,作为列向量返回。的每个元素iright
中标识行的Tright
对应于输出表或时间表中的那一行,T
.
更多关于
关键变量
变量,用于匹配和组合输入表之间的数据,Tleft
而且Tright
.
提示
输入表或时间表中的行标签向量可以是一个键,单独使用也可以与其他键变量结合使用。行标签是表的行名或时间表的行时间。若要使用此向量作为键,请将其指定为
“行”
(对于表的行名),作为行时间的时间表向量的名称,或作为的值
,在那里T
.Properties.DimensionNames {1}
是表格或时间表。T
一般来说,
innerjoin
从输入表复制行标签Tleft
到输出表T
.如果
Tleft
没有行标签,那么T
没有行标签。如果
Tleft
那么有行标签吗innerjoin
从Tleft
中创建行标签T
.然而,如果两者都
Tleft
而且Tright
是表,但您没有指定输入表的行名作为键,那么innerjoin
中未创建行名T
.
的行标签不能执行内部连接
Tleft
作为左键和变量Tright
作为右键。的行标签进行转换,以执行内部连接Tleft
到一个表变量,并使用新的表变量作为键。
扩展功能
高大的数组
使用行数超过内存容量的数组进行计算。
使用注意事项和限制:
这些名称-值参数的值不支持模式表达式:金宝app
“钥匙”
“LeftKeys”
“RightKeys”
“LeftVariables”
“RightVariables”
有关更多信息,请参见高大的数组.
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
一般来说,输入表不能有任何同名的非关键变量。属性可以连接输入表的子集
“LeftVariables”
而且“RightVariables”
名称-值参数。指定这些参数,使两个参数中都没有变量名“LeftVariables”
而且“RightVariables”
.这些name-value参数的值必须为常量:
“钥匙”
“LeftKeys”
“RightKeys”
“LeftVariables”
“RightVariables”
这些名称-值参数的值不支持模式表达式:金宝app
“钥匙”
“LeftKeys”
“RightKeys”
“LeftVariables”
“RightVariables”
不支持嵌套表和时间表。金宝app
版本历史
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。