主要内容

访问数据表

一个表是一个容器,用于数据存储在变量。表变量可以具有不同的数据类型和大小,只要所有的变量有相同的行数。表变量的名称,就像结构的字段名称。一个表的行可以有名字,但行名字不是必需的。访问表数据,索引入行和变量使用他们的名字或数字指标。

典型的索引表的原因包括:

  • 重新排序或删除行和变量。

  • 添加数组作为新行或变量。

  • 提取数据数组作为输入参数的函数。

总结表索引的语法

取决于您所使用的类型的索引,您可以访问子表或数组从表中提取。索引:

  • 光滑的括号(),返回一个表,选择行和变量。

  • 点符号返回一个变量作为数组的内容。

  • 花括号{},返回一个数组连接从选定的行和变量的内容。

您可以指定行和变量的名字,数字索引或数据类型。从R2019b,变量名和行名称可以包含任何字符,包括空格和非ascii字符。同时,他们不仅可以从任何字符,字母。变量和行名称不需要有效的MATLAB®标识符(如决定的isvarname功能)。

类型的输出

语法

变量

例子

表包含指定行和变量

T (,var)

指定为:

  • 之间的行数(1)

  • 名字,如果T行名称

  • 时候,如果T是一个时间表

  • 冒号(:),这意味着所有的行

指定为:

  • 之间的变量数(1n)

  • 的名字

  • 冒号(:),这意味着所有的变量

  • T (1:5, [1 4 5])

    表的前五行和第一、第四和第五的变量T

  • T (: {“A”、“B”})

    表中所有行和命名的变量“一个”“B”T

表包含指定数据类型的变量

S = vartype (类型);

T (,年代)

指定为:

  • 之间的行数(1)

  • 名字,如果T行名称

  • 时候,如果T是一个时间表

  • 冒号(:),这意味着所有的行

指定为一个数据类型,例如“数字”,“分类”,或“datetime”

  • S = vartype(数字);

    T (1:5, S)

    表的前五行和数值变量T

数组,从一个变量中提取数据

T。var

t (表达式)

未指定

指定为:

  • 一个变量名(不含引号)

  • 一个表达式括号内返回一个变量的名字或号码

  • T.Date

    从表中提取数组变量命名“日期”

  • t (“2019/06/30”)

    从表中提取数组变量命名“2019/06/30”

  • t (1)

    从第一个表中提取变量数组

提取数据从一个变量和数组,指定行

T。var()

t (表达式)()

指定为数字或逻辑数组的索引

指定为:

  • 一个变量名(不含引号)

  • 一个表达式括号内返回一个变量的名字或号码

  • T.Date (1:5)

    前五行数组从表中提取变量命名“日期”

  • t (“2019/06/30”) (1:5)

    前五行数组从表中提取变量命名“2019/06/30”

  • t (1) (1:5)

    前五行数组从第一个表中提取的变量

从指定的数组,连接数据行和变量

T {,var}

指定为:

  • 之间的行数(1)

  • 名字,如果T行名称

  • 时候,如果T是一个时间表

  • 冒号(:),这意味着所有的行

指定为:

  • 之间的变量数(1n)

  • 的名字

  • 冒号(:),这意味着所有的变量

  • T {1:5, [1 4 5]}

    数组连接的前五行和第一、第四和第五的变量T

  • T {:, {' A ', ' B '}}

    从所有行和变量命名数组连接“一个”“B”T

从指定的数组,连接数据行与指定的数据类型和变量

S = vartype (类型);

T {,年代}

指定为:

  • 之间的行数(1)

  • 名字,如果T行名称

  • 时候,如果T是一个时间表

  • 冒号(:),这意味着所有的行

指定为一个数据类型,例如“数字”,“分类”,或“datetime”

  • S = vartype(数字);

    T {1:5, S}

    数组连接从第一个五行和数值的变量T

数组,连接所有行数据和变量

T.Variables

未指定

未指定

  • T.Variables

    相同的数组返回T {:,:}

表包含指定行和变量

负载为100名患者的样本数据病人MAT-file工作空间变量。

负载病人
类属性名称大小字节100岁x1 800双舒张压100 x1 800双性别100 x1 11412细胞高度100 x1 800双LastName 100 x1 11616细胞位置100 x1 14208细胞SelfAssessedHealthStatus 100 x1 11540细胞吸烟者100 x1 100逻辑收缩压100 x1 800双重量100 x1 800双

创建一个表并填充它年龄,性别,高度,重量,吸烟者工作空间变量。使用的惟一标识符行名称。T是100 - 5表。(当你指定行名称,他们不被视为一个表变量)。

T =表(年龄、性别、身高、体重、吸烟,“RowNames”、LastName)
T =100×5表看上去年龄性别身高体重吸烟者___ __________长得一样史密斯38{‘男性’}71 176真正的约翰逊43{‘男性’}69 163假威廉姆斯38{‘女性’}64 131假琼斯40{‘女性’}67 133假布朗49{‘女性’}64 119假戴维斯46{‘女性’}68 142假米勒33{‘女性’}64 142真正的威尔逊68{‘男性’}180假摩尔28{‘男性’}68 183假泰勒132年{‘女性’}66年31日假安德森45{‘女性’}68 128假托马斯137年42{‘女性’}66假杰克逊25{‘男性’}71 174假白39{‘男性’}72 202真正的哈里斯36{‘女性’}65 129假马丁48⋮{‘男性’}71 181如此

使用数字指标指数

创建一个包含第一个五行和所有子表的变量T。指定所需的行和变量,使用括号内数字指标。这种类型的索引类似于索引数字数组。

T1 = T (1:5,:)
T1 =5×5表看上去年龄性别身高体重吸烟者___ __________长得一样史密斯38{‘男性’}71 176真正的约翰逊43{‘男性’}69 163假威廉姆斯38{‘女性’}64 131假琼斯67{‘女性’}133假布朗49{‘女性’}64 119错误

T1是一个5-by-5表格。

除了数字指标,您可以使用括号内的行或变量名。(在这种情况下,使用行指数和冒号比使用更紧凑的行或变量名)。

索引使用的名字

选择所有的数据最后一名患者”威廉姆斯“棕色”。自T行名称,是患者的姓氏,指数T使用行名称。

T2 = T ({”威廉姆斯,“棕色”},:)
T2 =2×5表看上去年龄性别身高体重吸烟者___ __________长得一样威廉姆斯38{‘女性’}64 131假布朗49{‘女性’}64 119错误

T2是一个2-by-5表格。

你也可以选择变量的名字。创建一个表,只有前五行T高度重量变量。显示它。

T3 = T (1:5, {“高度”,“重量”})
T3 =5×2表身高体重出生史密斯威廉姆斯约翰逊71 176 69 163 64 131琼斯布朗67 133 64 119

表变量名称不需要有效的MATLAB标识符。他们可以包括空间和非ascii字符,可以使用任何字符。

添加一个变量名称空间和少量T。然后指数为T使用变量名。

T = addvars (T, SelfAssessedHealthStatus“NewVariableNames”,“自我评价健康状况”);T (1:5, {“年龄”,“抽烟”,“自我评价健康状况”})
ans =5×3表年龄烟民自我评价健康状况___ _____ ___________________________史密斯38真{‘优秀’}约翰逊43假{‘公平’}威廉姆斯38假{‘好’}琼斯40假{‘公平’}布朗49假{‘好’}

指定数据类型下标

不是指定的变量使用姓名或号码,您可以创建一个数据类型相匹配的下标变量具有相同的数据类型。

首先,创建一个数据类型下标变量匹配数值表。

S = vartype (“数字”)
S =表vartype下标:选择表变量匹配类型的数字”看到表中访问数据。

创建一个表,只有数值变量,只有前五行,T

T4 = T (1:5)
T4 =5×3表年龄身高体重___交史密斯38 71 176约翰逊琼斯43 69 163威廉姆斯38 64 131 40 67 133布朗49 64 119

提取数据使用点符号和逻辑值

创建一个表的病人MAT-file。然后使用点符号从表中提取数据变量。你还可以使用逻辑指数指标从表中的值变量,生成满足条件。

负载病人T =表(年龄、性别、身高、体重、吸烟,“RowNames”、LastName);

从变量中提取数据

从一个变量中提取数据,使用点符号。提取的变量的数值重量。然后绘制直方图的值。

直方图(T.Weight)标题(“病人体重”)

T.Weight是一个双精度列向量与100行。

选择行与逻辑索引

你可以,索引数组或一个表使用一个逻辑索引数组。通常,您使用一个逻辑表达式,确定哪些值表中的变量满足一个条件。逻辑表达式的结果是一个数组的索引。

例如,创建逻辑索引匹配的患者年龄小于40

行= T。年龄< 40
行=100 x1逻辑阵列1 0 1 0 0 0 1 0 1 1⋮

提取患者年龄小于高度40,指数高度变量使用。以下有56个病人40

T.Height(行)
ans =56×171 64 64 68 66 71 72 65 69 69⋮

你可以用逻辑索引表索引。显示的行T以下的患者40

T(行,:)
ans =56×5表看上去年龄性别身高体重吸烟者___ __________长得一样史密斯38{‘男性’}71 176真正的威廉姆斯38{‘女性’}64 131假米勒33{‘女性’}64 142真实摩尔183年{‘男性’}68年28日假泰勒132年{‘女性’}66年31日假杰克逊25{‘男性’}71 174假白39{‘男性’}72 202真正的哈里斯36{‘女性’}65 129假汤普森32{‘男性’}69 191 69年真正的加西亚27日{‘女性’}131真正的马丁内斯37{‘男性’}70 179假罗德里格斯39{‘女性’}64 117假沃克28{‘女性’}65 123真正的大厅25{‘男性’}70 189假艾伦39{‘女性’}63 143假年轻25{‘女性’}63 114假⋮

你可以用一个逻辑表达式匹配多个条件。显示行以下的吸烟患者40

行= (T。吸烟者==true & T.Age<40); T(rows,:)
ans =18×5表看上去年龄性别身高体重吸烟者___ __________长得一样史密斯38{‘男性’}71 176真正的米勒33{‘女性’}64 142真正的白色39{‘男性’}72 202真正的汤普森32{‘男性’}69 191 69年真正的加西亚27日{‘女性’}131真正的沃克28{‘女性’}65 123 67{‘男性’}186年真正国王真正的纳尔逊33{‘男性’}66 180真正的米切尔39{‘男性’}71 164真正的特纳37{‘男性’}70 194真正的桑德斯33{‘女性’}67 115实际价格31{‘男性’}72 178真正的69年詹金斯28日{‘男性’}189真的长39{‘男性’}68 182真正的帕特森37{‘女性’}65 120真正的弗洛雷斯31⋮{‘女性’}66 141如此

点符号与任何变量名或表达式

索引使用点符号时,有两种方法来指定一个变量。

  • 的名字,没有引号。例如,T.Date指定一个变量命名“日期”

  • 由一个表达式,表达式是由括号封闭后点。例如,t (“开始日期”)指定一个变量命名“开始日期”

使用第一个语法当表变量名也是一个有效的MATLAB®标识符。(一个有效的标识符开始于一个信,只包含字母,数字和下划线)。

使用第二个语法当您指定:

  • 这一数字表明表中变量的位置。

  • 一个变量名称不是一个有效的MATLAB标识符。

  • 一个函数,它的输出是一个变量的名字,或一个变量添加到表中。的输出函数必须是一个特征向量或一个字符串标量。

例如,创建一个表的病人MAT-file。然后使用点符号表变量访问的内容。

负载病人T =表(年龄、性别、身高、体重、吸烟,“RowNames”、LastName);

指定一个变量在表中的位置,用一个数字。年龄是第一个变量T,所以使用这个号码1指定的位置。

t (1)
ans =100×138 43 38 40 49 46 33 40 28⋮31日

指定一个变量的名字,你可以附上引号。自“年龄”是一个有效的标识符,您可以指定使用吗T.Aget(年龄)

t (“年龄”)
ans =100×138 43 38 40 49 46 33 40 28⋮31日

您可以指定表的变量名是无效的MATLAB标识符。变量名称可以包含空格和非ascii字符,可以使用任何字符。然而,当您使用点符号来访问一个表与这样一个变量名称,您必须使用括号中指定它。

添加一个变量名称空间和连字符T

T = addvars (T, SelfAssessedHealthStatus“NewVariableNames”,“自我评价健康状况”);:T (1:5)
ans =5×6表年龄性别身高体重烟民自我评价健康状况看上去___ __________长得一样___________________________史密斯38{‘男性’}71 176真正的{‘优秀’}约翰逊43{‘男性’}69 163假{‘公平’}{‘女性’}威廉姆斯64 131假{‘好’}{‘女性’}琼斯67 133假{‘公平’}布朗49{‘女性’}64 119假{‘好’}

访问新表变量使用点符号。显示前五个元素。

C = t (“自我评价健康状况”);C (1:5)
ans =5 x1细胞{‘优秀’}{‘公平’}{‘好’}{‘公平’}{‘好’}

你也可以使用一个函数的输出作为变量名。删除t (“自我评价健康状况”)变量。然后把它换成一个变量的名字包括今天的日期。

t (“自我评价健康状况”)= [];t (string (datetime (“今天”)+自我报告的)= SelfAssessedHealthStatus;:T (1:5)
ans =5×6表年龄性别身高体重吸烟者24 - 8月2020年自我报告___看上去__________长得一样_______________________史密斯38{‘男性’}71 176真正的{‘优秀’}约翰逊43{‘男性’}69 163假{‘公平’}{‘女性’}威廉姆斯64 131假{‘好’}{‘女性’}琼斯67 133假{‘公平’}布朗49{‘女性’}64 119假{‘好’}

从指定的行中提取数据和变量

索引使用花括号提取数据从表和结果数组中,子表。但除此之外的差别,使用数字,您可以指定行和变量名称和数据类型下标,正如你可以使用平滑指数时括号。从一个表中提取值,使用尖括号。如果你从多个表中提取值变量,那么必须有数据类型的变量,这让他们连接在一起。

指定行和变量

从数字和逻辑数组创建一个表病人文件。

负载病人T =表(年龄、身高、体重、吸烟,“RowNames”、LastName);

从多个变量中提取数据T。点符号不同,索引使用花括号可以从多个表中提取值变量和连接成一个数组。

提取前五的身高和体重的病人。使用数字指标选择前五行,和变量名称选择变量高度重量

T = {1:5, {“高度”,“重量”}}
一个=5×271 176 69 163 64 131 67 133 64 119

一个是一个5×2数值数组,而不是桌子上。

如果你指定一个变量名称,那么花括号在同一数组索引结果你可以点符号。然而,您必须指定行和变量使用花括号时索引。例如,这个语法T.HeightT{:,“高度”}返回相同的数组。

从所有行中提取数据和变量

如果所有的表变量的数据类型可以使它们连接在一起,那么你可以使用T.Variables语法将所有表数据到一个数组中。这个语法是等价的T {:,:}冒号的地方显示所有行和变量。

A2 = T.Variables
A2 =100×438 43 71 176 69 163 64 0 131 0 40 67 133 0 49 64 119 0 46 68 142 33 64 142 1 40 68 180 0 0⋮28 68 183 0 31 66 132

另请参阅

|||

相关的话题