主要内容

桌子

表数组,其中包含不同类型的命名变量

描述

桌子阵列存储面向列或表格数据,例如来自文本文件或电子表格的列。表格存储每个面向列的数据多变的.表变量可以具有不同的数据类型和大小,只要所有变量都具有相同数量的行数即可。表变量具有名称,就像结构的字段具有名称。使用总结获取有关表的信息的功能。

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

创建

您可以从文件中读取数据到使用A表导入工具或者可阅读功能。或者,使用桌子下面描述的函数以创建来自现有工作区变量的表。

您还可以创建一个表,允许在稍后填写其值的变量空间。要创建一个具有prelocated空间的表格变量,请使用桌子功能“大小”作为第一个输入参数,如下所述。

描述

例子

t =表(var1,...,变华从输入变量创建表var1,...,变华.变量可以具有不同的大小和数据类型,但所有变量必须具有相同数量的行。

如果输入是工作空间的变量,则桌子将其名称分配为输出表中的变量名称。除此以外,桌子赋值窗体的变量名‘Var1’,……,”VarN', 在哪里N是变量的数量。

例子

t =表('size',深圳“VariableTypes”,vartypes.创建具有指定数据类型变量表和预分配的空间。深圳是一个双元数字数组,在哪里深圳(1)指定行数和SZ(2)指定变量的数量。vartypes.指定变量的数据类型。

例子

t =表(___名称,价值使用一个或多个名称值对参数指定其他输入参数。例如,您可以使用使用的变量名称'variablenames'名称值对。您可以使用此语法与先前语法的任何输入参数。

例子

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

输入参数

全部展开

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

常见的输入变量有数字数组、逻辑数组、字符数组、结构数组或单元格数组。输入变量也可以是数组对象。这样的数组必须支持表单的索引万博1manbetxvar(index1,...,indexn), 在哪里INDEX1.是一个数值或逻辑矢量对应于该变量的行var.此外,阵列必须实现aVertcat.方法和尺寸方法昏暗的争论。

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

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

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

仅创建变量,没有任何行,指定0.作为第一元件深圳

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

例子:t =表('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”

的NaT约会时间价值

“持续时间”

0.秒,持续时间价值

“日历”

0.天,作为一个日历价值

'细绳'

""(不含字符的1 × 1字符串)

“cellstr”

{''}(带有0 × 0字符数组的单元格)

'细胞'

{[]}(具有0-you-0双数组的单元格)

'struct'

标量结构没有字段

'桌子'

表没有变量

'时间表'

时间表,没有变量和的NaT为行时间

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

如果您指定'char'作为数据类型,则桌子将相应的变量预配为字符向量的小区阵列,而不是作为字符阵列。最佳实践是避免创建具有字符数组的表或时间表变量。使用表中的文本数据或时间表时,请考虑使用字符串数组或分类数组。

名称值对参数

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

例子:T =表(rowTimes,X,Y, 'VariableNames',{ '纬度', '经度'})从输入阵列创建表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财产。

属性

全部展开

访问表元数据属性

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

您可以使用语法返回所有元数据属性的摘要Tablename.。特性

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

表元数据

尺寸名称,指定为字符向量的两个元素的单元阵列或两元件字符串数组。

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

  • 如果使用一个字符串数组指定此属性,那么它被转换并作为字符向量的单元阵列存储。

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

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

  • 如果使用点语法和第二维名称,则来自所有变量的数据在一个阵列中连接在一起,好像您已使用索引到表中使用{:,:}句法。

例子

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

负载耐心T =表(年龄,身高,体重,收缩压,舒张压,......“RowNames”,姓);t.properties.dimensionnames.
ans =.1x2细胞{'行'}{}“变量”

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

T.Row(1:5)
ans =.5x1细胞{'史密斯'} {'Johnson'} {'Williams'} {'Jones'} {'Brown'}

使用第二个维度名称访问数据。该语法等价于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.Patient.T.Data分别。

T.Properties.DimensionNames = {'病人''数据'};t.properties.
ans = tableProperties具有属性:描述:''userdata:[] dimensionnames:{'患者'数据'} variablenames:{'年龄''height''重量''systolic''indstolic'} variadescriptions:{}变量:{variaBlecontinuity:[] Rownames:{100x1 Cell} CustomProperties:没有设置自定义属性。使用addprop和rmprop修改CustomProperties来。

行名,指定为字符向量的单元阵列或一个字符串数组,其元素是非空的和不同的。如果RowNames不为空,然后行名称的数量必须等于表中的行数。

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

  • 如果您用前导或尾随空格字符分配行名,则MATLAB®从行名称中删除它们。

  • 当您查看表中的行名是可见的。此外,您还可以使用括号或大括号内的行名来访问表数据。

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

  • 如果使用一个字符串数组指定此属性,那么它被转换并作为字符向量的单元阵列存储。

例子

创建一个表。然后按其名称添加行名称和访问行。

负载耐心T =表(性别、年龄、身高、体重、吸烟,收缩压、舒张压);

使用使用的行名称properties.rownames.财产。默认情况下,表没有行名称,但您可以随时添加它们。

T.Properties.RowNames =姓;头(T, 4)
ans =.4×7表性别年龄高分体重吸烟收缩舒张______________________________________________________________________ {'male'} 43 69 163 false 109 77威廉姆斯{女性'} 38 64 131 false 125 83琼斯{女性'} 40 67 133假117 75

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

t.properties.dimensionnames.
ans =.1x2细胞{'行'}{}“变量”
T.Row(1:5)
ans =.5x1细胞{'史密斯'} {'Johnson'} {'Williams'} {'Jones'} {'Brown'}

按行名称索引到表中。

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

表描述,指定为字符向量或字符串标量。使用时,该描述是可见的总结功能。

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

例子

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

负载耐心T =表(性别、年龄、身高、体重);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 =表(性别、年龄、身高、体重、吸烟,收缩压、舒张压);公式= @(x) x.^2;T.Properties.UserData =公式;t.properties.
ANS = TableProperties与属性:描述: '' 的UserData:@(X)的x ^ 2个DimensionNames:{ '行' '变量'} VariableNames:{1X7细胞} VariableDescriptions:{} VariableUnits:{} VariableContinuity:[] RowNames:{} CustomProperties来:没有自定义属性设置。使用addprop和rmprop修改CustomProperties来。

可变元数据

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

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

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

  • 如果使用一个字符串数组指定此属性,那么它被转换并作为字符向量的单元阵列存储。

例子

创建默认变量名的表。然后修改使用名称properties.variablenames.财产。

t =表({'M''M''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 _____ ____ _________ {'m'} 38 71 176 {'m'} 43 64131 {'f'} 40 64 131 133 {'f'} 40 67 133 {'f'} 49 64 119 64 119
t.properties.variablenames = {'性别''年龄''高度''重量'}
t =5×4表性别年龄高度重量______ ____ ______ ______ {'m'} 38 71 176 163 {'f'} 43 64 131 131 {'f'} 40 67 133 133 {'f'} 49 64 119 64 119

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

T.Age
ans =.5×138 43 38 40 49
T.age(1)= 53
t =5×4表性别年龄高度重量______ ____ ______ {'m'} 53 71 176 {'f'} 43 64 131 {'f'} 40 67 131 {'f'} 49 64 119 64 119 64 119

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

  • 的变量描述是可见的总结功能。

  • 如果使用一个字符串数组指定此属性,那么它被转换并作为字符向量的单元阵列存储。

例子

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

负载耐心T =表(性别、年龄、身高、体重、吸烟,收缩压、舒张压);t.properties.variabledescriptions = {''''''''......“病人有没有吸烟者......'收缩压'舒张压的};摘要(t)
变量:性别:100x1细胞字符矢量年龄:100x1双重值:min 25中位数39 max 50高度:100x1双重值:min 60中间值67最大72重量:100x1双重值:min 111中位数142.5 max 202吸烟者:100x1逻辑性质:描述:患者是否曾经是吸烟者价值:TRUE 34 FALSE 66收缩量:100x1双倍物业:描述:收缩压值:MIN 109中位数122 MAX 138舒张:100x1双人特性:描述:舒张压值:MIN 68中位数81.5最多99.

可变单元,指定为字符向量的单元阵列或一个字符串数组。该属性可以是一个空单元阵列,这是缺省值。如果数组不为空,则它必须包含多个元素,因为存在变量。您可以指定不具有单位变量中的单个字符空载体或空字符串。

  • 使用时可变单元可见总结功能。

  • 如果使用一个字符串数组指定此属性,那么它被转换并作为字符向量的单元阵列存储。

例子

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

负载耐心T =表(性别、年龄、身高、体重、吸烟,收缩压、舒张压);T.Properties.VariableUnits = {'''yrs''在'“磅”''毫米汞柱的毫米汞柱的};摘要(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收缩:100x1双属性:单位:mm Hg值:Min 109中位数122最大值138舒张压:100x1双属性:单位:mm Hg值:Min 68中位数81.5最大值99

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

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

自定义元数据

表的自定义元数据及其变量,指定为aCustomProperties来目的。

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

  • 要为表添加自定义元数据的属性,请使用addprop功能。

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

  • 要删除属性,请使用rmprop功能。

笔记:您可以添加或删除只要使用定制的元数据的属性addproprmprop.您无法添加或删除属性Tablename.。特性目的。

例子

创建一个表。

负载耐心T =表(性别、年龄、身高、体重、吸烟,收缩压、舒张压);

添加可以保存关于表及其变量的自定义元数据的属性。在本例中,元数据是工具的名称,真的指示是否绘制变量的值以及输出文件的名称。要添加属性,请使用addprop功能。

t = addprop(t,{'仪器''toplot''输出文件'},{'多变的''多变的''桌子'});t.properties.
ANS =具有属性的TableProperties:Description:''''userdata:[] dimensionnames:{'行'变量'} variablenames:{1x7 cell} variabledes:{}变量:{} variablecontion:{} variablecontion:[] Rownames:{}自定义属性(访问使用t.properties.customproperties。):outputfile:[]仪器:[] toplot:[]

使用点语法为自定义元数据分配值。将一系列文本值分配给自定义元数据时,最佳实践是使用字符串数组,而不是字符向量的单元数组。如果是一个财产CustomProperties来是字符向量的单元格数组,然后没有机制可以防止您作为单元数组的元素分配非文本值。

T.Properties.CustomProperties.Instrument = [""""“高度棒”“规模”""“血压袖带”“血压袖带”];t.properties.customproperties.toplot = [假误真实真为false true];t.properties.customproperties.Outputfile =.'upartdata.csv';t.properties.
ans = TableProperties属性:描述:“用户数据:[]DimensionNames:{“行”“变量”}VariableNames: {1} x7细胞VariableDescriptions: {} VariableUnits: {} VariableContinuity: [] RowNames:{}自定义属性(访问使用t.Properties.CustomProperties。<名称>):OutputFile:“patientData.csv”仪器:[1 x7字符串]如何:[0 0 1 1 0 1 1]

删除OutputFile物业T.

t = rmprop(t,'输出文件');t.properties.
ans = TableProperties属性:描述:“用户数据:[]DimensionNames:{“行”“变量”}VariableNames: {1} x7细胞VariableDescriptions: {} VariableUnits: {} VariableContinuity: [] RowNames:{}自定义属性(访问使用t.Properties.CustomProperties。<名称>):仪器:[1 x7字符串]如何:(0 0 1 1 0 1 1)

例子

全部收缩

存储有关一组桌子的患者的数据。您可以在同一表中执行计算并存储结果。此外,您可以注释表格来描述您的工作和表格的变量。

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

lastName = {'桑切斯'“约翰逊”“李”'迪亚兹'“棕色”};年龄=[38,43岁,38;40;49);吸烟者=逻辑([1,0,1,0,1]);身高= [71;69;64;67;64);重量= [176;163;131;133;119);血压= [1293;109 77;125 83;117 75;122 80];

创建一个表,T.,作为工作区变量的容器。这桌子函数使用Workspace变量名称作为表变量的名称T..表变量可以有多个列。例如,血压T中的变量是5×2阵列。

T =表(姓氏,年龄,吸烟者,身高,体重,血压)
t =5×6表姓年龄吸烟者身高体重血压___________ _________ ____________ _____________ {'Sanchez'} 38真71 176 124 93 {'Johnson'} 43假69 163 109 77 {'Li'} 38真64 131 125 83 {'Diaz'} 40假67 133 117 75 {'Brown'} 49真64 119 122 80

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

meanheight =卑鄙(t.height)
meanHeight = 67

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

T.BMI = (T.Weight * 0.453592)。/ (T.Height * 0.0254)。^ 2
t =5×7表LASTMAME AGE SAFTER HEACE PERFICE FLACE血压BMI __________________________________________________________________________________________'''1297 23 24.071{'diaz'} 40 false 67 133 117 75 20.831 {'brown'} 49 TRUE 64 119 122 80 20.426

用BMI计算的描述注释表格。你可以注释T.以及通过元数据访问的变量t.properties.

t.properties.description =.“患者数据,包括身体质量指数(BMI),使用身高,体重计算”;t.properties.
ANS =具有属性的TableProperties:描述:'患者数据,包括使用高度和权重'UserData计算的体重指数(BMI):{'行'变量'} variablenames:{1x7 Cell} VariaBlate:{}变量:{} variableContimuity:[] Rownames:{} customproperties:没有设置自定义属性。使用addprop和rmprop修改CustomProperties来。

访问所有从一个表作为矩阵中的数据,使用该表的第二维度的名称。

创建具有约一组患者的5行数据的表。

年龄=[38,43岁,38;40;49);吸烟者=逻辑([1,0,1,0,1]);身高= [71;69;64;67;64);重量= [176;163;131;133;119);血压= [1293;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 =.1x2细胞{'行'}{}“变量”

使用语法以矩阵的形式访问表数据t.variables..此语法等同于使用Crace Brace语法访问所有内容,T {:,:}.如果表数据不能连接到矩阵,则提出错误消息。

t.variables.
ans =.5×6.38 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} ='upartdata';T.PatientData
ans =.5×6.38 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”'细绳'};t =表(“大小”、深圳、'variabletypes'varTypes)
t =4×3表var1 var2 var3 ____ ____ _________ 0 NAT <缺失> 0 NAT <缺失> 0 NAT <缺失> 0 NAT <缺失>

要为变量指定名称,请使用'variablenames'名称值对参数。

varNames = {'温度''时间''车站'};t2 =表(“大小”、深圳、'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 23-FEB-2021 14时41分31秒 “S1” 68 24-FEB-2021 14时41分31秒 “S2” 0的NaT <缺失> 0的NaT <缺失>

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

创建数组的表。要指定表变量名,使用'variablenames'名称值对参数。例如,您可以使用'variablenames'指定当其他输入参数不是工作区变量时的名称。

t =表(分类({'M''F''M'})(45、32、34),......{'纽约''CA''嘛'}、逻辑((1,0,0)),......'variablenames',{'性别''年龄''状态''投票'})
t =3×4表性别年龄表决___​​___ ______________ m 45 {'ny'}真正的f 32 {'ca'}假m 34 {'ma'} false

创建一个表与状态名称为行名称。您可以指定'variablenames'“RowNames”使用时的名称 - 值对桌子功能。

t =表(分类({'M''F''M'})(45、32、34),逻辑((1,0,0)),......'variablenames',{'性别''年龄''投票'},......“RowNames”,{'纽约''CA''嘛'})
t =3×3表性别年龄投票______ ____ ______ ny m 45真正ca f 32 false ma m 34 false

为表指定行名称。表格不必具有行名称,但如果指定它们,则可以按行名称索引到表中。您还可以使用表的第一个维度的名称来访问一组行名称。

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

lastName = {'桑切斯'“约翰逊”'lee''迪亚兹'“棕色”};年龄=[38,43岁,38;40;49);身高= [71;69;64;67;64);重量= [176;163;131;133;119);

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

T =表(年龄,体重,高度,“RowNames”,姓)
t =5×3表年龄重量高度___ ______ ______桑切斯38 176 71 johnson 43 163 69 lee 38 131 64 diaz 40 133 67棕色49 119 64

由于行有行名称,您可以索引到行中T.按名字。

T('lee':)
ans =.1×3表年龄重量高度___ ______ ______ lee 38 131 64

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

T({'lee'“棕色”},:)
ans =.2×3表年龄体重高度___ ______ ______ lee 38 131 64棕色49 119 64

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

t.row.
ans =.5x1细胞{'桑切斯'} {'Johnson'} {'李'} {'diaz'} {'brown'}

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

t.properties.dimensionnames.{1} ='姓氏';t.lastnames.
ans =.5x1细胞{'桑切斯'} {'Johnson'} {'李'} {'diaz'} {'brown'}

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

flidentnum = [1261; 547; 3489];客户= [“琼斯”“棕色的”“史密斯”];日期=日期时间(2016,12,20:22)';等级=分类([“好的”“贫穷的”“公平”]);评论= [“按时离开,不拥挤”......“晚点出发,没有晚餐选择了”......“晚了,但只有一个半小时,否则罚款。”];T =表(FlightNum,Customer,Date,评级,评论)
t =3×5表FlightNum客户日期评分评论_________ ________ ___________ ______ _________________________________________________ 1261“琼斯” 20日 -  12月-2016好“飞行留下的时间,不挤” 547“布朗” 12月21日-2016差“延迟退房,跑的晚餐选择了” 3489“史密斯”22-of 2016展会“迟到,但只有半小时。否则就好了。”

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

客户= cellstr(客户);T =表(FlightNum、日期、评级,评论,“RowNames”,顾客)
t =3×4表flidentnum日期评级评论_________ ___________ ______ ________________________________________________________________________________________ jones 1261 20-dep-2016好的“剩余的航班”剩余的棕色547 21-dec-2016糟糕的“出发”史密斯3489 22-dec-2016公平“迟到了,但只有半小时。否则很好。”

在三个位置创建包含不同日期的降雪总数的工作区变量。这些变量是行向量。

日期= {'12 / 25/11''1/2/12'“1/23/12”'2/7/12'“12年2月15日”};location1 = [20 5 13 0 17];位置2 = [18 9 21 5 12];位置3 = [26 10 16 3 15];

从这些变量创建表的一种方法是调用桌子使用语法函数T =表(日期',location1',location2',location3').由于工作空间变量是行向量,因此必须将它们转换为将其放入表中作为面向列的数据。因此,输入参数是表达式,而不是简单的变量。其结果,桌子创造T.使用默认变量名称var1var2var3., 和var4..您可以分配更有意义的名称t.properties.variablenames.在您创建T..但是,创建一个空表可能更方便,然后使用新名称添加一个变量。

创建一个空表。转换工作区变量并将其添加到表中作为列向量。作为将每个工作空间变量分配到的一部分T.,为表变量提供有意义的名称。

T =表;T.Date =日期';T.Natick = location1 ';T.Boston = location2 ';T.Worcester = 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);血压= [1293;109 77;125 83;117 75;122 80);T =表(年龄,吸烟者)
t =5×2表年龄吸烟___________ 38 TRUE 43 FALSE 38 TRUE 40 FALSE 49真实

使用变量名添加血压读数'29 -May-2019血压读数'.您可以使用点语法来添加或访问变量。因为它的名字不是一个有效的MATLAB标识符,使用圆括号和引号与点语法。

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

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

T.Height =身高;T.Weight =重量
t =5×5表年龄吸烟29  -  2019年5月血压读取高度重量____ ______ _____________________ _____________ ______ 38真的124 93 71 176 43真实125 83 64 131 40假117 75 67 133 49真实122 80 64 119

索引进入T.使用变量名称。

T(:,{'年龄'“抽烟”'29 -May-2019血压读数'})
ans =.5×3表年龄吸烟者29- 5 -2019血压读数_________ __________________________________ 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.