主要内容

表格

带有可包含不同类型的命名变量的表数组

描述

表格数组存储面向列或表格的数据,例如文本文件或电子表格中的列。表将每个面向列的数据块存储在变量。只要所有变量具有相同的行数,表变量可以具有不同的数据类型和大小。表变量有名称,就像结构的字段有名称一样。使用总结函数获取关于表的信息。

要索引到表中,请使用圆括号()返回子表或花括号{}提取内容。您可以使用名称访问变量和行。有关使用数字和名称建立索引的详细信息,请参见访问表中的数据

创建

方法将数据从文件读取到表中导入工具或者是readtable函数。或者,使用表格函数从现有的工作空间变量创建一个表。

您还可以创建一个表,为稍后填充值的变量提供空间。要为变量创建具有预分配空间的表,请使用表格函数与“大小”作为第一个输入参数,如下所述。

描述

例子

table(表)var1,…,varN从输入变量创建一个表var1,…,varN。变量可以具有不同的大小和数据类型,但所有变量必须具有相同的行数。

如果输入是工作空间变量,则表格将它们的名称分配为输出表中的变量名。否则,表格分配窗体的变量名‘Var1’,……,”VarN,在那里N是变量的个数。

例子

T = table('Size',深圳“VariableTypes”,varTypes创建表并为具有指定数据类型的变量预先分配空间。深圳是一个双元素数字数组,在哪里深圳(1)指定行数和深圳(2)指定变量的数量。varTypes指定变量的数据类型。

例子

table(表)___名称,值使用一个或多个名称-值对参数指定附加输入参数。例如,您可以使用“VariableNames”名称-值对。您可以将此语法与前面语法的任何输入参数一起使用。

例子

T =表创建一个空的0 × 0表。

输入参数

全部展开

输入变量,指定为具有相同行数的数组。输入变量可以有不同的大小和不同的数据类型。

常见的输入变量有数字数组、逻辑数组、字符数组、结构数组或单元格数组。输入变量也可以是数组形式的对象。这样的数组必须支持表单的索引万博1manbetxvar (indexN index1…),在那里index1是一个数字或逻辑向量,对应于行变量var。此外,数组必须同时实现avertcat方法和a大小方法昏暗的论点。

例子:表([1:4]”,(4、3、2)、眼睛(4,2))从具有四行但大小不同的变量创建一个表。

例子:表([1:3]”,{“一”,“两个”;“三个”},分类({' A ', ' B '; ' C '}))从具有三行但不同数据类型的变量创建一个表。

预分配表的大小,指定为双元素数字向量。的第一个元素深圳指定行数,第二个元素指定表变量的数量。

若要仅创建变量而不创建任何行,请指定0的第一个元素深圳

例子:50 T =表(“大小”,[3],VariableTypes,{“字符串”,“双”,“datetime”})为包含字符串数组、双精度数组和日期时间数组的表预分配50行。

例子:T = table('Size',[0 4],'VariableTypes',varTypes)指定零行和四个变量。

预分配变量的数据类型,指定为字符向量的单元格数组或字符串数组。指定的类型的数量varTypes必须等于的第二个元素指定的变量数深圳

varTypes可以包含任何数据类型的名称,包括表中显示的名称。

数据类型名称

每个元素的初始值

“双”“单一”

双精度或单精度0

“doublenan”“doubleNaN”“singlenan”“singleNaN”

双精度或单精度

“int8”“int16”“int32”“int64”

有符号8位、16位、32位或64位整数0

“uint8”“uint16”“uint32”“uint64”

无符号8位、16位、32位或64位整数0

“逻辑”

0(

“分类”

<定义>绝对价值

“datetime”

NaTdatetime价值

“持续时间”

0秒,作为一个持续时间价值

“calendarDuration”

0天,作为一个calendarDuration价值

“字符串”

”“(无字符的1 × 1字符串)

“cellstr”

{"}(包含0 × 0字符数组的单元格)

“细胞”

{[]}(单元格为0 × 0双数组)

“结构”

没有字段的标量结构

“表”

不带变量的表

“时间表”

没有变量的时间表NaT对于行次数

对于任何其他数据类型,初始值是该类型或类用来“填充”数组中未赋值元素的值。

如果你指定“字符”作为一种数据类型表格将相应的变量预先分配为字符向量的单元数组,而不是字符数组。最佳实践是避免创建字符数组形式的表或时间表变量。在处理表格或时间表中的文本数据时,请考虑使用字符串数组或分类数组。

名称-值对参数

指定可选的逗号分隔对名称,值参数。名字是参数名和吗价值是对应的值。名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数,如Name1, Value1,…,的家

例子:T = table(rowTimes,X,Y,'VariableNames',{'Latitude','Longitude'})从输入数组创建一个表XY,并命名相应的表变量纬度经度

变量名,指定为字符向量的单元格数组或元素非空且不同的字符串数组。

  • 数组中名称的数量必须等于表变量的数量。

  • 表格函数还将变量名存储在VariableNames表的属性。

  • 变量名可以是任意Unicode®字符,包括空格和非ascii字符。

行名,指定为字符向量的单元格数组或其元素非空且不同的字符串数组。

  • 数组中的名称数必须等于行数。

  • 表格函数还将行名存储在RowNames表的属性。

  • 行名可以有任何Unicode字符,包括空格和非ascii字符。

  • 表格函数从行名称中删除任何前导或尾随空白字符。

例子:表(T =(10、20、30),{' M ', ' F '; ' F '}, VariableNames,{“年龄”、“性别”},RowNames, {P1, P2, P3的})创建一个包含变量名和行名的表。

自从R2021a

维度名称,指定为字符向量的双元素单元数组或元素非空且不同的双元素字符串数组。

  • 表格类中存储维度名称DimensionNames表的属性。

  • 维度名称可以有任何Unicode字符,包括空格和非ascii字符。

在R2021a之前,只能通过配置参数来指定维度名称DimensionNames财产。

属性

全部展开

访问表元数据属性

表包含描述表及其变量的元数据属性。使用语法访问这些属性的表. properties。PropertyName,在那里PropertyName是属性的名称。例如,您可以访问table中变量的名称T使用语法T.Properties.VariableNames

您可以使用该语法返回所有元数据属性的摘要的表. properties

表提供元数据访问属性属性,因为您可以使用点语法直接访问表数据。例如,if表T有一个名为Var1,然后可以使用语法访问变量中的值T.Var1

表元数据

维度名称,指定为字符向量的双元素单元数组或双元素字符串数组。

  • 维度名称可以有任何Unicode字符,包括空格和非ascii字符。

  • 如果使用字符串数组指定此属性,则将其转换并存储为字符向量的单元格数组。

您可以使用两个维度名称访问表数据。

  • 如果表有行名,并且使用点语法和第一个维度名,那么可以将行名作为向量访问。

  • 如果使用点语法和第二维名称,那么来自所有变量的数据将被连接到一个数组中,就像使用{:,:}语法。

例子

创建一个表并显示它的维度名称。可以使用带有点语法的维度名访问行名和数据。

负载病人T =表(年龄,身高,体重,收缩压,舒张压,“RowNames”、LastName);T.Properties.DimensionNames
ans =1 x2单元格{'行'}{}“变量”

使用第一个维度名称访问行名。显示前五个名称。

T.Row (1:5)
ans =5 x1细胞{“史密斯”}{“约翰逊”}{威廉姆斯的}{“琼斯”}{“棕色”}

使用第二个维度名称访问数据。这个语法等价于T {:,:}

T.Variables
ans =100×538 71 176 124 93 43 69 163 109 77 38 64 131 125 83 40 67 133 117 75 49 64 119 122 80 46 68 142 121 70 33 64 142 130 88 40 68 180 115 82 28 68 183 115 78 31 66 132 118 86

控件修改其维度的名称属性。DimensionNames财产。更改维度名称后,可以使用语法访问行名称和数据T.PatientT.Data分别。

T.Properties.DimensionNames = {“病人”“数据”};T.Properties
ans =具有属性的表属性:描述:" UserData: [] DimensionNames:{'患者''数据'}VariableNames:{'年龄''身高''体重''收缩压''舒张压'}variabledescription: {} VariableUnits: {} variableconcontinuity: [] RowNames: {100x1 cell} CustomProperties:没有设置自定义属性。使用addprop和rmprop来修改CustomProperties。

行名,指定为字符向量的单元格数组或其元素非空且不同的字符串数组。如果RowNames不为空,则行名的数量必须等于表中的行数。

  • 行名可以有任何Unicode字符,包括空格和非ascii字符。

  • 如果您指定行名称的开头或结尾的空白字符,那么MATLAB®从行名中删除它们。

  • 在查看表时,行名是可见的。此外,还可以使用括号或花括号内的行名来访问表数据。

  • 访问行名的另一种方法是使用点语法和表第一个维度的名称。

  • 如果使用字符串数组指定此属性,则将其转换并存储为字符向量的单元格数组。

例子

创建一个表。然后添加行名并按行名访问行。

负载病人T = table(性别、年龄、身高、体重、吸烟者、收缩压、舒张压);

控件添加行名属性。RowNames财产。默认情况下,表没有行名,但您可以随时添加行名。

properties . rownames = LastName;头(T, 4)
ans =表4×7性别年龄身高体重吸烟者收缩期舒张期__________ _________ ______ ______ ________ _________史密斯{'男'}38 71 176真124 93约翰逊{'男'}43 69 163假109 77威廉姆斯{'女'}38 64 131假125 83琼斯{'女'}40 67 133假117 75

访问行名的另一种方法是对表的第一个维度的名称使用点语法。显示前五个行名。

T.Properties.DimensionNames
ans =1 x2单元格{'行'}{}“变量”
T.Row (1:5)
ans =5 x1细胞{“史密斯”}{“约翰逊”}{威廉姆斯的}{“琼斯”}{“棕色”}

按行名索引到表。

T ({“史密斯””威廉姆斯},:)
ans =表2×7性别年龄身高体重吸烟者收缩压舒张压  __________ ___ ______ ______ ______ ________ _________ 史密斯{‘男性’}38 71 176真正的124 93威廉姆斯{‘女性’}38 64 131错误125 83

表描述,指定为字符向量或字符串标量。属性时,此描述可见总结函数。

如果使用字符串标量指定此属性,则将其转换并存储为字符向量。

例子

创建一个表。修改表的描述信息。显示结果摘要。

负载病人T = table(性别,年龄,身高,体重);T.Properties.Description =“模拟病人数据”;总结(T)
描述:模拟患者数据变量:性别:100x1字符向量的细胞数组年龄:100x1双值:Min 25中位数39 Max 50身高:100x1双值:Min 60中位数67 Max 72体重:100x1双值:Min 111中位数142.5 Max 202

额外的表信息,指定为一个数组。可以使用此属性将任何类型的数据附加到表上。

例子

创建一个表。附加一个匿名函数作为与表关联的用户数据片段。

负载病人T = table(性别、年龄、身高、体重、吸烟者、收缩压、舒张压);公式= @(x) x ^2;properties . userdata = formula;T.Properties
ans =表属性与属性:描述:" UserData: @(x)x。^2 DimensionNames: {'Row' 'Variables'} VariableNames: {1x7 cell} variabledescription: {} VariableUnits: {} VariableContinuity: [] RowNames: {} CustomProperties:不设置自定义属性。使用addprop和rmprop来修改CustomProperties。

变量的元数据

变量名,指定为字符向量的单元格数组或元素非空且不同的字符串数组。名称的数量必须等于变量的数量。

  • 变量名可以有任何Unicode字符,包括空格和非ascii字符。

  • 变量名在查看表时是可见的总结函数。此外,还可以使用括号、花括号或点索引中的变量名来访问表数据。

  • 如果使用字符串数组指定此属性,则将其转换并存储为字符向量的单元格数组。

例子

创建一个具有默认变量名的表。方法修改名称属性。VariableNames财产。

T = table({“米”;“米”;“F”;“F”;“F”},[38, 43岁,38;40;49),(71; 69; 64; 67; 64], [176; 163; 131; 133; 119))
T =5×4表Var1 Var2 Var3 Var4  _____ ____ ____ ____ {' 176} 38 71{“M”}43 69 163 {' F '} 38 64 131 {' F '} 40 67 133 {' F '} 49 64 119
T.Properties.VariableNames = {“性别”“年龄”“高度”“重量”}
T =5×4表性别年龄身高体重  ______ ___ ______ ______ {' 176} 38 71{“M”}43 69 163 {' F '} 38 64 131 {' F '} 40 67 133 {' F '} 49 64 119

显示和修改变量的基本方法是使用点语法按名称访问它们。

T.Age
ans =5×138 43 38 40 49
年龄(1)= 53岁
T =5×4表性别年龄身高体重  ______ ___ ______ ______ {' '} 53 71 176{“M”}43 69 163 {' F '} 38 64 131 {' F '} 40 67 133 {' F '} 49 64 119

变量描述,指定为字符向量的单元格数组或字符串数组。此属性可以是空单元格数组,这是默认值。如果数组不是空的,那么它必须包含和变量一样多的元素。您可以为没有描述的变量指定单独的空字符向量或空字符串。

  • 类时,变量描述是可见的总结函数。

  • 如果使用字符串数组指定此属性,则将其转换并存储为字符向量的单元格数组。

例子

创建一个表。修改变量描述。显示结果摘要。

负载病人T = table(性别、年龄、身高、体重、吸烟者、收缩压、舒张压);t . properties . variabledescription = {“病人曾经吸烟吗?”收缩压的舒张压的};总结(T)
变量:性别:100x1字符向量的细胞数组年龄:100x1双值:Min 25中位数39 Max 50身高:100x1双值:Min 60中位数67 Max 72体重:100x1双值:Min 111中位数142.5 Max 202吸烟者:100x1逻辑属性:描述:患者是否曾经是吸烟者值:真34假66收缩压:100x1双属性:描述:收缩压值:Min 109中位数122最大138舒张:100x1双属性:描述:舒张压值:最小68,中位81.5,最大99

可变单元,指定为字符向量的单元数组或字符串数组。此属性可以是空单元格数组,这是默认值。如果数组不是空的,那么它必须包含和变量一样多的元素。您可以为没有单位的变量指定单独的空字符向量或空字符串。

  • 变量单位在使用时是可见的总结函数。

  • 如果使用字符串数组指定此属性,则将其转换并存储为字符向量的单元格数组。

例子

创建一个表。修改变量单位。显示结果摘要。

负载病人T = table(性别、年龄、身高、体重、吸烟者、收缩压、舒张压);properties . variableunits = {“年”“在”“磅”毫米汞柱的毫米汞柱的};总结(T)
变量:性别:100 x1单元阵列特征向量的年龄:100年x1双重性质:单位:年价值观:25分钟39马克斯50高度中位数:100 x1双重性质:单位:在价值观:60分钟中等67 Max 72重量:100 x1双重性质:单位:磅值:111分钟142.5 Max 202吸烟者中位数:100 x1逻辑值:对34个错66收缩压:100 x1双重性质:单位:毫米汞柱值:109分钟122 Max 138舒张中位数:100 x1双重性质:单位:毫米汞柱价值观:最小68中位数81.5最大99

作为连续或离散变量的状态,指定为字符向量的单元格数组或字符串数组。

虽然表和时间表都有此属性,但只有时间表使用它。有关更多信息,请参见VariableContinuity的属性时间表

自定义元数据

表及其变量的自定义元数据,指定为CustomProperties对象。

CustomProperties对象是可添加到表中的自定义元数据的容器。默认情况下,CustomProperties没有属性。添加到的每个属性CustomProperties可以包含表元数据或变量元数据。如果属性包含可变元数据,则其值必须是一个数组,并且数组中的元素数量必须等于表变量的数量。

  • 将自定义元数据的属性添加到表中,请使用addprop函数。

  • 要访问或修改自定义元数据,请使用语法的表.Properties.CustomProperties。PropertyName。在这个语法中,PropertyName添加该属性时选择的名称是否使用addprop

  • 要删除属性,请使用rmprop函数。

注意:您可以添加或删除只有属性,用于使用自定义元数据addproprmprop。的属性不能添加或删除的表. properties对象。

例子

创建一个表。

负载病人T = table(性别、年龄、身高、体重、吸烟者、收缩压、舒张压);

添加可以保存关于表及其变量的自定义元数据的属性。在这个例子中,元数据是仪器的名称,真正的指示是否绘制变量的值,以及输出文件的名称。要添加属性,使用addprop函数。

T = addprop(T,{“工具”“如何”“OutputFile”},{“变量”“变量”“表”});T.Properties
ans = TableProperties with properties: Description: " UserData: [] DimensionNames: {'Row' 'Variables'} VariableNames: {1x7 cell} variabledescription: {} VariableUnits: {} variableccontinucontinuity: [] RowNames:{}自定义属性(使用t.p properties . customproperties .): OutputFile: [] Instrument: [] ToPlot: []

使用点语法为自定义元数据赋值。当您将文本值数组分配给自定义元数据时,最佳实践是使用字符串数组,而不是字符向量的单元格数组。的性质CustomProperties是字符向量的单元格数组,那么没有机制可以阻止您稍后将非文本值分配为单元格数组的元素。

T.Properties.CustomProperties.Instrument = [”“”““高度杆”“规模””““血压袖带”“血压袖带”];T.Properties.CustomProperties.ToPlot =[假假真真假真真];T.Properties.CustomProperties.OutputFile =“patientData.csv”;T.Properties
ans = TableProperties with properties: Description: " UserData: [] DimensionNames: {'Row' 'Variables'} VariableNames: {1x7 cell} variabledescription: {} VariableUnits: {} variableccontinucontinuity: [] RowNames:{}自定义属性(使用t.p properties . customproperties .访问):OutputFile: 'patientData.csv' Instrument: [1x7 string] ToPlot: [0 0 1 1 0 1 1]

删除OutputFile的财产T

T = rmprop(T;“OutputFile”);T.Properties
ans = TableProperties with properties: Description: " UserData: [] DimensionNames: {'Row' 'Variables'} VariableNames: {1x7 cell} variabledescription: {} VariableUnits: {} variableccontinucontinuity: [] RowNames:{}自定义属性(使用t.p properties . customproperties .): Instrument: [1x7 string] ToPlot: [0 0 1 1 0 1 1]

例子

全部折叠

将一组患者的数据存储在一个表中。您可以在同一个表中执行计算并存储结果。此外,您还可以对该表进行注释,以描述您的工作和该表的变量。

首先,创建包含患者数据的工作空间变量。变量可以具有任何数据类型,但必须具有相同的行数。

LastName = {“桑切斯”;“约翰逊”;“李”;“Diaz”;“棕色”};年龄= [38;43;38;40;49];吸烟者=逻辑([1;0;1;0;1]);身高= [71;69;64;67;64];权重= [176;163;131;133;119];血压= [124 93;109 77;125 83;117 75;122 80);

创建一个表,T,作为工作空间变量的容器。的表格函数使用工作空间变量名作为中的表变量名T。一个表变量可以有多个列。例如,血压变量T是一个5 × 2的数组。

T = table(姓氏,年龄,吸烟者,身高,体重,血压)
T =5×6表姓氏年龄吸烟者身高体重血压___________ _________ ____________ _____________{'桑切斯'}38真71 176 124 93{'约翰逊'}43假69 163 109 77{'李'}38真64 131 125 83{'迪亚兹'}40假67 133 117 75{'布朗'}49真64 119 122 80

您可以使用点索引来访问表变量。例如,使用中的值计算患者的平均身高T.Height

meanHeight = mean(T.Height)
meanHeight = 67

计算身体质量指数(BMI),并将其添加为一个新的表变量。您还可以使用点语法在一步中添加和命名表变量。

体重指数=(体重*0.453592)./(身高*0.0254).^2
T =5×7表姓氏年龄吸烟者身高体重血压BMI ___________ _________ ____________ _____________ ______ {'Sanchez'} 38真71 176 124 93 24.547 {'Johnson'} 43假69 163 109 77 24.071 {'Li'} 38真64 131 125 83 22.486 {'Diaz'} 40假67 133 117 75 20.831 {'Brown'} 49真64 119 122 80 20.426

用BMI计算的描述对表进行注释。你可以注释T它的变量使用元数据访问T.Properties

T.Properties.Description =“患者数据,包括使用身高和体重计算的身体质量指数(BMI)”;T.Properties
ans =具有属性的表属性:描述:'患者数据,包括使用身高和体重计算的身体质量指数(BMI) ' UserData: [] DimensionNames: {'Row' 'Variables'} VariableNames: {1x7 cell} variabledescription: {} VariableUnits: {} variableccontinuity: [] RowNames: {} CustomProperties:没有设置自定义属性。使用addprop和rmprop来修改CustomProperties。

使用表的第二维名称,以矩阵的形式访问表中的所有数据。

创建一个表,其中包含关于一组患者的五行数据。

年龄= [38;43;38;40;49];吸烟者=逻辑([1;0;1;0;1]);身高= [71;69;64;67;64];权重= [176;163;131;133;119];血压= [124 93;109 77;125 83;117 75;122 80);T =表格(年龄,吸烟者,身高,体重,血压)
T =5×5表年龄吸烟者身高体重血压_________ ____________ _____________ 38真71 176 124 93 43假69 163 109 77 38真64 131 125 83 40假67 133 117 75 49真64 119 122 80

控件显示表维度的名称DimensionNames财产。第二个维度的默认名称为变量

T.Properties.DimensionNames
ans =1 x2单元格{'行'}{}“变量”

使用语法将表数据作为矩阵访问T.Variables。这种语法相当于使用花括号语法访问所有内容,T {:,:}。如果表数据不能连接到矩阵中,则会引发错误消息。

T.Variables
ans =5×638 1 71 176 124 93 43 0 69 163 109 77 38 1 64 131 125 83 40 0 67 133 117 75 49 1 64 119 122 80

重命名第二个维度。如果更改了名称,则可以使用新名称访问数据。

T.Properties.DimensionNames{2} =“PatientData”;T.PatientData
ans =5×638 1 71 176 124 93 43 0 69 163 109 77 38 1 64 131 125 83 40 0 67 133 117 75 49 1 64 119 122 80

通过指定表的大小和变量的数据类型来预分配表。的表格函数用适合您指定的数据类型的默认值填充变量。它还提供了变量的默认名称,但您也可以分配自己的变量名称。预分配为稍后添加到表中的数据提供了空间。

Sz = [4 3];varTypes = {“双”“datetime”“字符串”};table(表)“大小”、深圳、“VariableTypes”varTypes)
T =4×3表Var1 Var2 Var3 ________ _________ 0 NaT <缺失> 0 NaT <缺失> 0 NaT <缺失> 0 NaT <缺失>

要指定变量的名称,请使用“VariableNames”名称-值对参数。

varNames = {“温度”“时间”“站”};T2 = table(表)“大小”、深圳、“VariableTypes”varTypes,“VariableNames”varNames)
T2 =4×3表温度时间站___________ ____ _________ 0 NaT <缺失> 0 NaT <缺失> 0 NaT <缺失> 0 NaT <缺失>

的前两行添加数据行T2。当代码一次添加一行或几行数据时,预分配可能是一种有用的技术。您可以填充已经为您的数据提供了空间的表变量,而不是每次添加一行时都增加表。

T2(1,:) = {75,datetime()“现在”),“S1”};T2(2,:) = {68,datetime(“现在”) + 1,“S2”}
T2 =4×3表温度时间站  ___________ ____________________ _________ 75年2月23 - - 2021 14:41:31“S1”68年2月24 - - 2021 14:41:31“S2”NaT失踪> < 0 NaT失踪> <

可以在单元格数组中封装一行数据值。当从单元格数组中分配一行时,将把单元格数组中的元素分配给表中的该行。

从数组创建一个表。方法指定表变量名“VariableNames”名称-值对参数。例如,您可以使用“VariableNames”当其他输入参数不是工作空间变量时,指定名称。

表(分类){“米”;“F”;“米”})(45、32、34),{“纽约”;“CA”;“马”}、逻辑((1,0,0)),“VariableNames”, {“性别”“年龄”“状态”“投票”})
T =3×4表性别年龄投票  ______ ___ ______ _____ 米45{“纽约”}真F 32{“CA”}假米34{‘马’}假

创建一个以状态名作为行名的表。可以同时指定“VariableNames”“RowNames”的名称-值对表格函数。

表(分类){“米”;“F”;“米”})(45、32、34),逻辑((1,0,0)),“VariableNames”, {“性别”“年龄”“投票”},“RowNames”, {“纽约”;“CA”;“马”})
T =3×3表性别年龄投票______ ___ _____ NY M 45真CA F 32假MA M 34假

指定表的行名。表不一定要有行名,但是如果指定行名,则可以按行名索引到表中。还可以使用表的第一个维度的名称访问行名集。

创建包含患者数据的数组。

LastName = {“桑切斯”;“约翰逊”;“李”;“Diaz”;“棕色”};年龄= [38;43;38;40;49];身高= [71;69;64;67;64];权重= [176;163;131;133;119];

创建一个包含数组的表。指定作为表的行名的来源。该表只有三个变量。行名不是表变量,而是表的属性。

T =表(年龄,体重,身高,“RowNames”、LastName)
T =5×3表年龄体重身高___ ______ ______桑切斯38 176 71约翰逊43 163 69李38 131 64迪亚兹40 133 67布朗49 119 64

因为行有行名,所以可以索引到的行T的名字。

T (“李”:)
ans =1×3表年龄体重身高___ ______ ______李38 131 64

若要指定多行,请使用单元格数组。

T ({“李”“棕色”},:)
ans =2×3表年龄体重身高___ ______ ______李38 131 64布朗49 119 64

的所有行名T作为单元格数组,使用语法T.Row。默认情况下,表的第一个维度的名称。

T.Row
ans =5 x1细胞{“桑切斯”}{“约翰逊”}{‘李’}{“Diaz”}{“棕色”}

更改第一个维度的名称。如果更改了名称,则可以使用新名称访问行名。

T.Properties.DimensionNames{1} =“姓”;T.LastNames
ans =5 x1细胞{“桑切斯”}{“约翰逊”}{‘李’}{“Diaz”}{“棕色”}

从R2017a开始,您可以使用双引号创建字符串,并将字符串数组添加为表变量。

FlightNum = [1261;547;3489];顾客= [“琼斯”;“棕色”;“史密斯”];Date = datetime(2016,12,20:22)';等级=分类的([“好”;“穷”;“公平”]);评论= [“航班准时起飞,不拥挤”;"出发晚了,晚餐没选择了";“晚了,不过只晚半个小时。否则罚款。”];T = table(FlightNum,Customer,Date,Rating,Comment)
T =3×5表FlightNum客户评级评论日期  _________ ________ ___________ ______ _________________________________________________ 1261“琼斯”20 - 12月- 2016好”班机准时离开,而不是拥挤的“547”布朗“21 - 12月- 2016贫困“晚离开,跑出晚餐选择”3489“史密斯”22 - 12月- 2016年公平”晚了,但是只有半个小时。否则罚款。”

若要使用字符串数组中的文本作为行名,请将字符串数组转换为字符向量的单元格数组。然后用行名创建一个表。

Customer = cellstr(Customer);T =表(FlightNum,日期,评级,评论,“RowNames”、客户)
T =3×4表FlightNum日期评级评论__________________________ _________________________________________________ Jones 1261 2016年12月20日好“航班准时起飞,不拥挤”Brown 547 2016年12月21日差“起飞晚,没有晚餐选择”Smith 3489 2016年12月22日Fair“迟到,但只有半小时。否则罚款。”

创建包含三个地点不同日期的降雪总量的工作空间变量。这些变量是行向量。

日期= {“12/25/11”“1/2/12”“1/23/12”“2/7/12”“2/15/12”};Location1 = [20 5 13 0 17];Location2 = [18 9 21 5 12];Location3 = [26 10 16 3 15];

从这些变量创建表的一种方法是调用表格带语法的函数T = table(Date',location1',location2',location3')。由于工作空间变量是行向量,您必须将它们转换为面向列的数据,将它们放入表中。因此,输入参数是表达式,而不是简单的变量。因此,表格创建T使用默认变量名Var1Var2Var3,Var4。可以分配更有意义的名称T.Properties.VariableNames创建之后T。但是,创建一个空表,然后用新名称一次添加一个变量可能更方便。

创建一个空表。转置工作空间变量,并将它们作为列向量添加到表中。作为将每个工作空间变量分配给T,为表变量提供一个有意义的名称。

T = table;T.Date =日期';T.Natick = location1';T.Boston = location2';t .伍斯特= location3'
T =5×4表日期纳蒂克波士顿伍斯特  ____________ ______ ______ _________ {' 12/25/11’}20 18 26{‘1/2/12}5 9 10{‘1/23/12}13 21 16{‘2/7/12}0 5 3{‘2/15/12}17 12 15

从R2019b开始,您可以指定不是有效的MATLAB®标识符的表变量名称。这样的变量名可以包括空格、非ascii字符,并且可以使用任何字符作为前导字符。当您访问这样的变量名时,请将其用引号括起来。

创建一个表,存储关于一组患者的数据。从他们的年龄和吸烟状况开始。

年龄= [38;43;38;40;49];吸烟者=逻辑([1;0;1;0;1]);身高= [71;69;64;67;64];权重= [176;163;131;133;119];血压= [124 93;109 77;125 83;117 75;122 80);表(年龄,吸烟者)
T =5×2表年龄吸烟者___ ______ 38真43假38真40假49真

添加带有变量名称的血压读数“2019年5月29日血压读数”。可以使用点语法添加或访问变量。由于其名称不是有效的MATLAB标识符,请使用圆括号和带点语法的引号。

t (“2019年5月29日血压读数”) =血压
T =5×3表年龄吸烟者2019年5月29日血压读数_________ __________________________________ 38真124 93 43假109 77 38真125 83 40假117 75 49真122 80

当表变量名是有效的MATLAB标识符时,可以使用点语法,不带括号和引号。

T.Height =高度;重量=重量
T =5×5表年龄吸烟者2019年5月29日血压读数身高体重_________ __________________________________ ____________ 38真124 93 71 176 43假109 77 69 163 38真125 83 64 131 40假117 75 67 133 49真122 80 64 119

索引T使用变量名。

T (:, {“年龄”“抽烟”“2019年5月29日血压读数”})
ans =5×3表年龄吸烟者2019年5月29日血压读数_________ __________________________________ 38真124 93 43假109 77 38真125 83 40假117 75 49真122 80

限制

  • 对这些输入名称使用单引号:

    • “DimensionNames”(因为R2021a)

    • “RowNames”

    • “大小”

    • “VariableTypes”

    • “VariableNames”

    为避免与变量输入混淆,不要使用双引号的字符串标量(例如“RowNames”)。

提示

  • 有关接受或返回表的函数列表,请参见

兼容性的考虑

全部展开

行为在R2019b中改变

行为在R2019b中改变

行为在R2021a中改变

扩展功能

在R2013b中引入