访问数据表
一个表是一个容器,用于数据存储在变量。表变量可以具有不同的数据类型和大小,只要所有的变量有相同的行数。表变量的名称,就像结构的字段名称。一个表的行可以有名字,但行名字不是必需的。访问表数据,索引入行和变量使用他们的名字或数字指标。
典型的索引表的原因包括:
重新排序或删除行和变量。
添加数组作为新行或变量。
提取数据数组作为输入参数的函数。
总结表索引的语法
取决于您所使用的类型的索引,您可以访问子表或数组从表中提取。索引:
光滑的括号(),返回一个表,选择行和变量。
点符号返回一个变量作为数组的内容。
花括号{},返回一个数组连接从选定的行和变量的内容。
您可以指定行和变量的名字,数字索引或数据类型。从R2019b,变量名和行名称可以包含任何字符,包括空格和非ascii字符。同时,他们不仅可以从任何字符,字母。变量和行名称不需要有效的MATLAB®标识符(如决定的isvarname
功能)。
类型的输出 |
语法 |
行 |
变量 |
例子 |
---|---|---|---|---|
表包含指定行和变量 |
|
指定为:
|
指定为:
|
|
表包含指定数据类型的变量 |
|
指定为:
|
指定为一个数据类型,例如 |
|
数组,从一个变量中提取数据 |
|
未指定 |
指定为:
|
|
提取数据从一个变量和数组,指定行 |
|
指定为数字或逻辑数组的索引 |
指定为:
|
|
从指定的数组,连接数据行和变量 |
|
指定为:
|
指定为:
|
|
从指定的数组,连接数据行与指定的数据类型和变量 |
|
指定为:
|
指定为一个数据类型,例如 |
|
数组,连接所有行数据和变量 |
|
未指定 |
未指定 |
|
表包含指定行和变量
负载为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.Age
或t(年龄)
。
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.Height
和T{:,“高度”}
返回相同的数组。
从所有行中提取数据和变量
如果所有的表变量的数据类型可以使它们连接在一起,那么你可以使用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