9 Tables
表(table)是一种面向列或者列成表格的数据,这些数据经常以列的形式存储为文本格式或者表格格式。表包含多行和面向列的变量。表中的各变量可以具有不同的数据类型,也可以有不同的尺寸,只是各变量必须要具有相同的行数。例如用户可以使用表来存储实验数据,列用来表示不同的变量,行用来表示每次观测所得到的数值。
【例3-59】 表的创建。
本例将为读者演示怎样创建一个表。表是一种在一个容器内收集异构数据、元数据属性和变量单位等信息的数据类型。
MATLAB提供了一个名为'patients.dat'的测试数据。测试数据中是以逗号为分隔符的文本文件,包含了100位不同病人的信息。下面是该文件的前六行。
LastName,Gender,Age,Location,Height,Weight,Smoker,Systolic,Diastolic,SelfAssessedHealthStatus
Smith,Male,38,County General Hospital,71,176,1,124,93,Excellent
Johnson,Male,43,VA Hospital,69,163,0,109,77,Fair
Williams,Female,38,St. Mary's Medical Center,64,131,0,125,83,Good
Jones,Female,40,VA Hospital,67,133,0,117,75,Fair
Brown,Female,49,County General Hospital,64,119,0,122,80,Good
从文件内容可以看出,第一行包含了每列的名称,中间由逗号隔开。
使用readtable函数通过默认设置创建表。用户还可以使用readtable函数将Excel表格转换为表。readtable函数可以处理具有分隔符的后缀为txt、dat或csv的文本文件,也可以处理后缀为xls和xlsx的表格文件。
>> T = readtable('patients.dat');
查看表的尺寸信息:
>> size(T)
ans =
100 10
从结果可以看出,表T包含了10个变量100行数据。
通过以下命令可以查看表T的前5行数据和前5个变量:
>> T(1:5,1:5)
ans =
LastName Gender Age Location Height
__________ ________ ___ ___________________________ ______
'Smith' 'Male' 38 'County General Hospital' 71
'Johnson' 'Male' 43 'VA Hospital' 69
'Williams' 'Female' 38 'St. Mary's Medical Center' 64
'Jones' 'Female' 40 'VA Hospital' 67
'Brown' 'Female' 49 'County General Hospital' 64
默认情况下,readtable函数用第一行来作为变量名。如果第一行不包含变量名,那么用户可以使用T = readt