主要内容

堆栈

堆栈的数据输入表或时间表中一个变量输出表或时间表

描述

例子

年代=堆栈(U,var)转换的输入表或时间表,U,进入堆叠桌子或时间表,年代。多个变量的函数栈值U成一个变量年代。输入参数var指定变量的U堆栈,通过他们的名字或位置U

如果Un行和var指定变量U,然后年代m * n行。的堆栈从指定的变量函数交叉值U创建一个变量年代。例如,如果U有10行和堆栈变量的三个吗U,然后年代有30行。一般来说,年代行,包含更少的变量,但比U

输出表或时间表,年代,包含一个新的分类变量来表示变量U堆叠的每一行数据年代的来源。的堆栈复制的数据变量的函数U不堆放。

  • 如果U堆栈是一个表,那么你不能行名称。

  • 如果U堆栈是一个时间表,那么你不能行。

例子

年代=堆栈(U,var,名称,值)转换表,U,由一个或多个指定附加选项名称,值对参数。

例如,您可以指定的变量名和变量年代

例子

(年代,国际单位)=堆栈(___)还返回一个索引向量,国际单位,表明行之间的对应关系年代和行U。您可以使用任何以前的输入参数。

例子

全部折叠

创建一个表包含考试成绩从三个不同的测试。表在unstacked格式。

Test1 = (93; 57; 87; 89);Test2 = (89; 77; 92; 86);Test3 = (95; 62; 89; 91);U =表(Test1, Test2 Test3)
U =4×3表Test1 Test2 Test3 _____ _____ _____ 57 93 89 95 77 62 87 92 89 89 86 91

表包含四行和三个变量。

堆栈的考试成绩到一个变量中。

S =堆栈(U, 1:3)
S =12×2表93年Test1_Test2_Test3_Indicator Test1_Test2_Test3 ___________________________ _________________ Test1 Test2 89 Test3 95 Test1 57 Test2 77 Test3 62 Test1 87 Test2 92 Test3 89 Test1 89 Test2 86 Test3 91

年代包含12行和两个变量。年代在堆叠的格式。

分类变量,Test1_Test2_Test3_Indicator,确定哪些测试对应的分数堆数据变量,Test1_Test2_Test3

创建一个时间表显示的降雪在三个城镇从五个不同的风暴。指定日期的风暴datetime价值观和使用它们的行乘以时间表U。指定数组的风暴数量,风暴以来,作为一个分类数组有一组固定的风暴数量在这个时间表。

风暴=分类([1,2,3,4,5]);日期= datetime ({“2011-12-25”;“2012-01-02”;“2012-01-23”;“2012-02-07”;“2012-02-15”});纳蒂克= [20;5、13 0;17);波士顿= [18、9、21;5。12);伍斯特= [26;10;16;3。15);U =时间表(日期、风暴、纳蒂克,波士顿,伍斯特郡)
U =5×4时间表日期风暴纳蒂克波士顿伍斯特___________ _____交_____ 25 - 12月- 2011年1 20 18 26日02 - 1月- 2012年2 5 9 10 23 - 1月- 2012年3 13 21 2012年07 - 2月16日4 0 5 3 2月15 - 15 - 2012 5 17 12

的变量风暴日期包含数据,在每一个位置都是恒定的。

堆栈变量纳蒂克,波士顿,伍斯特到一个变量中。名字包含堆叠的变量数据,降雪新的指标变量的名字,小镇

S =堆栈(U, {“纳蒂克”,“波士顿”,“伍斯特”},“NewDataVariableName”,“雪”,“IndexVariableName”,“小镇”)
S =15×3的时间表日期风暴镇降雪___________ _____ _____ ________ 25 - 12月- 2011年1纳蒂克20波士顿18 25 25 - 12月- 2011年1 - 12月- 2011年1月1伍斯特26日02 - - 2012 2纳蒂克5 02 - 1月- 2012年2波士顿9 02 - 1月- 2012年2伍斯特10 23 - 1月- 2012年3纳蒂克13 23 - 1月- 2012年3波士顿21 23 - 1月- 2012年3伍斯特16 07年2月- 07年2月- 2012年4纳蒂克0 - 2012 4波士顿5 07年2月- 2012年4伍斯特3 15 - 2月- 2012年5纳蒂克2月15 - 17日- 2012年5波士顿12 15 - 2月- 2012年5伍斯特15

年代包含三个行对于每一个风暴,和堆栈重复常数变量中的数据,风暴日期相应地,。

分类变量,小镇,确定哪些变量U包含相应的降雪数据。

创建一个时间表包含每月估计流感率沿美国东海岸。创建一个不同的变量对东北、中部大西洋、南大西洋。数据来源:Google流感趋势项目(已停用)。使用一个datetime数组的行乘以时间表。

10月= datetime(2005年,1,“格式”,“嗯yyyy”)+ calmonths (0:5);月=月”;不= (1.1902;1.3610;1.5003;1.7772;2.1350;2.2345);MidAtl = (1.1865;1.4120; 1.6043; 1.8830; 2.1227; 1.9920]; SAtl = [1.2730; 1.5820; 1.8625; 1.9540; 2.4803; 2.0203]; fluU = timetable(Month,NE,MidAtl,SAtl)
fluU =6×3的时间表月NE MidAtl SAtl看上去_________________长得一样2005年10月2005年12月2005年11月1.1902 1.1865 1.273 1.361 1.412 1.582 1.5003 1.6043 1.8625 2006年1月2006年3月2006年2月1.7772 1.883 1.954 2.135 2.1227 2.4803 2.2345 1.992 2.0203

的变量包含常数的数据行。

堆栈变量,MidAtl,SAtl成一个变量FluRate。变量名称的新指标地区和输出索引向量,ifluU,表示输入unstacked表之间的对应关系,fluU,输出堆表,流感

[流感,ifluU] =堆栈(fluU 1:3,“NewDataVariableName”,“FluRate”,“IndexVariableName”,“地区”)
流感=18×2时间表1.1902月东北地区FluRate _________________……自从2005年10月2005年10月2005年10月1.1865 MidAtl SAtl 1.273 2005年11月NE 1.361 2005年11月MidAtl 1.412 1.5003 2005年12月2005年12月2005年11月1.582 SAtl NE MidAtl 1.7772 1.6043 1.8625 2006年1月2005年12月SAtl NE 2006年1月2006年1月1.883 MidAtl SAtl 1.954 2.135 2006年2月2006年2月NE MidAtl 2.1227 2.2345 2.4803 2006年3月2006年2月SAtl NE⋮
ifluU =18×11 1 1 2 2 2 3 3 3 4⋮

ifluU (5)2。第五行输出表中,流感,从第二行包含数据输入表fluU

输入参数

全部折叠

输入表,指定为一个表或一个时间表。

变量U堆栈,指定为一个正整数,向量的正整数,字符串数组,特征向量,单元阵列的特征向量,模式标量、逻辑向量,或细胞数组。通常情况下,堆栈函数堆栈从所有指定的变量值var为一个变量年代

注意:可以创建多个变量年代通过指定var作为一个单元阵列。在这种情况下,每一个细胞var指定另一组变量堆栈。有关更多信息,请参见提示

例子:S =堆栈(U, 1:4)栈的第一个四个变量U成一个变量年代

例子:S =堆栈(U, {Var1, Var3”、“Var5 '})栈的变量U的命名Var1,Var3,Var5

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:“NewDataVariableName”、“StackedData”新数据变量名称StackedData

以外的变量var包含在输出中,指定为逗号分隔组成的“ConstantVariables”一个正整数,向量的正整数,字符串数组,特征向量,单元阵列的特征向量,模式标量,或逻辑向量。堆栈复制的数据连续每个堆叠条目从常数变量。

缺省值是所有的变量U没有指定的var。您可以指定“ConstantVariables”名称-值对参数不排除变量指定的var“ConstantVariables”从输出表,年代

U行标签在第一维度。如果U是一个表,那么它可以行名称的标签。如果U是一个时间表,那么它必须行倍标签。

  • 你可以包括行名称或行时候你指定的值“ConstantVariables”

  • 堆栈复制行名称或行乘以即使你不包括“ConstantVariables”

新数据变量的名称年代,指定为逗号分隔两人组成的“NewDataVariableName”一个特征向量,特征向量的字符串数组,数组或单元。默认是一个串联的变量的名称U叠加。

新的指标变量的名称年代,指定为逗号分隔两人组成的“IndexVariableName”和一个字符向量或字符串标量。基于默认是一个名字NewDataVariableName

输出参数

全部折叠

堆表,返回一个表或一个时间表。年代包含一个堆数据变量,一个分类指标变量,和任意常数变量。

你可以储存额外的元数据,如描述,单位的变量,变量名和行名称年代。有关更多信息,请参见属性的部分时间表

堆栈分配变量单位和变量描述属性值从第一个变量中列出var到相应的S.Properties.VariableUnitsS.Properties.VariableDescrisciptions新数据变量的值。

索引U,作为一个列向量返回。索引向量,国际单位输入表中的标识行,U,包含相应的数据。堆栈创建jth行输出表中,年代,使用U (iu (j), var)

提示

创建多个叠加在输出变量

  • 是可能的堆栈值从输入输出到多个变量。创建多个变量年代,用一个细胞数组的变量来指定多个组U。您可以使用一个单元阵列包含多个值var,特征向量的细胞数组或字符串数组包含多个值“NewDataVariableName”名称-值对的论点。所有的组织都必须包含相同数量的变量。

    例如,如果U包含四个变量,那么您可以创建两个堆叠变量年代,而不是只有一个,通过使用这种语法。

    var = {[1 - 2], [3 - 4]};S =堆栈(U, var)

    作为一个结果,年代有从第一和第二堆变量值的变量U,另一个堆叠第三和第四变量的变量值U

    指定新变量名年代,使用“NewDataVariableName”。你指定名字的数量必须等于组中指定的数量var

    var = {[1 - 2], [3 - 4]};S =堆栈(U, var,“NewDataVariableName”,{“Vars1And2”,“Vars3And4”})

  • 当你指定var作为一个单元阵列的特征向量,然后年代包含一个变量。指定多个堆叠变量在使用变量名,使用单元阵列的细胞阵列的特征向量,或一个细胞字符串数组的数组。

    例如,这个语法创建一个变量年代U表变量命名吗Var1,Var2,Var3,Var4

    S =堆栈(U, {“Var1”,“Var2”,“Var3”,“Var4”})

    这个语法创建两个变量年代

    S =堆栈(U, {{“Var1”,“Var2”}{“Var3”,“Var4”}})

扩展功能

版本历史

介绍了R2013b