这个例子显示了如何创建工作空间的变量,使用表数据,并写入表一表,供以后使用的文件。桌子
是用于收集异构数据和元数据属性,如变量名,行名称,描述,和可变单元,在单个容器中的数据类型。
表是适合于通常被存储为列的文本文件或电子表格中的列取向或表格数据。表中的每个变量可以有一个不同的数据类型,但必须具有相同的行数。然而,在一个表中的变量不限于列向量。例如,一个表变量可以,只要其具有相同的行数与其他表变量的包含具有多个列的矩阵。为一个表的一个典型应用是存储的实验数据,其中行表示不同的观察和列表示不同的测量变量。
表是用于收集和组织相关的数据变量和查看和汇总数据方便的容器。例如,您可以提取变量进行计算,并方便地添加结果作为新表变量。当你完成你的计算,编写表到一个文件来保存结果。
从创建工作区变量表和查看。或者,使用导入工具或者可阅读
函数从电子表格或文本文件中创建一个表。当你使用这些功能从文件导入数据,每列成为表变量。
从中加载100名患者的样品数据耐心
MAT文件到工作区中的变量。
加载耐心谁是
名称大小字节类属性年龄100X1 800双舒张100X1 800双性别100X1 11412细胞身高100X1 800双姓100X1 11616细胞位置100X1 14208细胞SelfAssessedHealthStatus 100X1 11540细胞吸烟者100X1 100逻辑收缩期100X1 800双重量100X1 800双
填充与包含患者数据面向列的变量表。您可以访问和名称分配表变量。当您从工作区变量赋值表变量,你可以指定表变量不同的名称。
创建一个表,并用它填充性别
那吸烟者
那高度
, 和重量
工作区的变量。显示前五行。
T =表(性别,吸烟者,身高,重量);T(1:5,:)
ans =.5×4表性别吸烟高度重量__________ ______ ______ ______ {'male'}真71 176 {'male'} false 69 163 {'女性'} false 64 131 {女性'} false 67 133 {女性'}假64 119
作为替代方案,可以使用可阅读
从逗号分隔文件中读取患者数据的功能。可阅读
读取文件中的所有列。
从文件中读取所有列创建一个表,patients.dat
。
t2 =可读取的('patients.dat');T2(1:5,:)
ans =.5×10表名字性别年龄所在地身高体重吸烟者心脏收缩舒张SelfAssessedHealthStatus ____________ __________ ___ _____________________________ ______ ______ ______ ________ _________ ________________________ { '史密斯'} { '男'} 38 { '县综合医院'} 71 176 1 124 93 { '优秀'} {”约翰逊 '} { '男'} 43 { 'VA医院'} 69 163 0 109 77 { '一般'} { '威廉斯'} { '女'} 38 {' 圣玛丽的医疗中心 '} 64 131 0 125 83 {' 好 '} { '琼斯'} { '女'} 40 { 'VA医院'} 67 133 0 117 75 { '公平'} { '布朗'} {' 女'} 49 {' 县综合医院”} 64 119 0 122 80 { '良好'}
你可以使用点符号分配更多的面向列的表变量,T.varname
, 在哪里T.
是表和arnamame.
是所希望的变量名。创建是随机数标识符。然后将它们分配到一个表变量,并命名表变量ID
。所有分配给一个表中的变量必须具有相同的行数。显示的前五行T.
。
t.id = randi(1E4,100,1);T(1:5,:)
ans =.5×5表性别吸烟者身高体重ID __________ ______ ______ ____ { '男'}真71 176 8148 { '男'}假69 163 9058 { '女'}假64 131 1270 { '女'}假67 133 9134 { '女'}假64 119 6324
所有分配给一个表中的变量必须具有相同的行数。
通过使用创建表摘要视图的数据类型,描述,单位和其他描述性统计每个变量概括
功能。
概要(T)
变量:性别:100x1 Cell字符向量阵列吸烟:TRUE 34 FALSE 66高度:100x1双值:MIN 60中位数67最大72重量:100x1双值:MIN 111中位数142.5最大202 ID:100x1双值:Min 120中位5485.5最高9706
返回表的大小。
尺寸(T)
ans =.1×2100 5.
T.
包含100行和5个变量。
创建一个包含前五排一个新的,更小的表T.
并显示它。您可以在括号内使用数字索引来指定行和变量。此方法类似于索引到数字阵列以创建子阵列。TNEW.
是一个5×5的表。
TNEW = T(1:5,:)
TNEW =5×5表性别吸烟者身高体重ID __________ ______ ______ ____ { '男'}真71 176 8148 { '男'}假69 163 9058 { '女'}假64 131 1270 { '女'}假67 133 9134 { '女'}假64 119 6324
创建一个包含所有行的小表TNEW.
与第二个到最后一个变量。使用结尾
关键字来表示最后一个变量或表的最后一行。TNEW.
有5×4表。
TNEW = TNEW(:,2:结束)
TNEW =5×4表吸烟者身高重量ID ______ __________ ____ ____真71 176 8148 FALSE 69 163 9058 FALSE 64 131 1270 FALSE 67 133 9134 FALSE 64 119 6324
添加排名T.
和索引表使用行和变量名,而不是数字索引。通过分配添加行名称姓
工作空间可变的rownames.
财产T.
。
t.properties.rowname = lastname;
显示的前五行T.
与行的名称。
T(1:5,:)
ans =.5×5表性别吸烟者身高体重ID __________ ______ ______ ______ ____史密斯{ '男'}真71 176 8148约翰逊{ '男'}假69 163 9058威廉姆斯{ '女'}假64 131 1270琼斯{ '女'}假67 133 9134布朗{ '女'}假64 119 6324
返回的大小T.
。由于计算表的大小时不包括行和变量名称,大小不会更改。
尺寸(T)
ans =.1×2100 5.
选择患者的姓氏中的所有数据“史密斯”
和'约翰逊'
。在这种情况下,它更容易使用该行的名称,而不是使用数字索引。TNEW.
是一个2×5表。
TNEW = T({“史密斯”那'约翰逊'},:)
TNEW =2×5表性别吸烟高度重量_________________________________史密斯{'male'}真正的71 176 8148约翰逊{男性'}假69 163 9058
选择命名患者的身高和重量'约翰逊'
通过索引的变量名。TNEW.
是一个1×2的表。
tnew = t('约翰逊'{'高度'那'重量'})
TNEW =1×2表高度重量______ ______约翰逊69 163
您可以访问表变量与点语法,如T.Height.
,或命名索引,如T(:,'height')
。
您可以访问表变量的内容,然后使用MATLAB®函数对其进行计算。计算体重指数(BMI
)基于现有的表的变量数据,并把它添加作为新的变量。剧情的关系BMI
给病人作为一个吸烟者或不吸烟者状态。加入血压读数表,并绘制血压BMI的关系。
计算BMI
使用表格变量,重量
和高度
。你可以提取重量
和高度
为计算方便,同时保持重量
那高度
, 和BMI
与患者其他数据表。显示的前五行T.
。
T.BMI =(T.Weight * 0.453592)./(T.Height * 0.0254)^ 2。T(1:5,:)
ans =.5×6表性别吸烟者身高体重ID BMI __________ ______ ______ ______ ____ ______史密斯{ '男'}真71 176 8148 24.547约翰逊{ '男'}假69 163 9058 24.071威廉姆斯{ '女'}假64 131 1270 22.486琼斯{ '女'}假67 133 9134 20.831布朗{ '女'}假64 119 6324 20.426
填充可变单元和可变的描述属性BMI
。您可以将元数据添加到任何表变量,以进一步描述变量中包含的数据。
T.Properties.VariableUnits {'BMI'} ='kg /平方公尺2';t.properties.variadedescriptions {'BMI'} =“身体质量指数”;
创建直方图,探讨是否有本组患者中吸烟和身体质量指数之间的关系。你可以索引BMI
具有来自的逻辑值吸烟者
表变量,因为每行包含BMI
和吸烟者
对于同一病人的价值观。
TF =(T.Smoker == FALSE);H1 =直方图(T.BMI(TF),'binmethod'那'整数');抓住在TF =(T.Smoker == TRUE);H2 =直方图(T.BMI(TF),'binmethod'那'整数');Xlabel('BMI(kg /平方公尺2)');ylabel('患者数量);传奇('nonsmokers'那“吸烟者”);标题('BMI为吸烟者和非闻名者分配);抓住离开
从工作区变量增加患者的血压读数收缩压
和舒张
。每一行都包含收缩压
那舒张
, 和BMI
对于同一病人的价值观。
t.Systolic =收缩系统;t.diaastolic =舒张;
创建直方图显示是否存在高值之间的关系舒张
和BMI
。
TF =(T.BMI <= 25);H1 =直方图(T.Diastolic(TF),'binmethod'那'整数');抓住在TF =(T.BMI> 25);H2 =直方图(T.Diastolic(TF),'binmethod'那'整数');Xlabel('舒张读数(mm hg)');ylabel('患者数量);传奇('BMI <= 25'那'BMI> 25');标题(“舒张读数低和高BMI”);抓住离开
为了制备表输出,由位置或名称重新排序按名称表中的行,和表变量。显示表中的最终排列。
排序行的名称表,以便患者按字母顺序排列。
T =调用sortRows(T,'RowNames');T(1:5,:)
ans =.5×8表性别吸烟高度重量ID BMI收缩舒张____________________________________________________________________ adams {'女性'} false 66 137 8235 22.112 127 83亚历山大{'male'}真正的69 171 1300 25.252 128 99 Allen {女性'} False 63143 7432 25.331 113 80 Anderson {女性'}假68 128 1577 19.462 114 77 Bailey {女性'}假68 130 2239 19.766 113 81
创建一个血压
变量以100×2表变量保持血压读数。
T.BloodPressure = [T.Systolic T.Diastolic];
删除收缩压
和舒张
从表中,因为它们是多余的。
T.Systolic = [];T.Diastolic = [];T(1:5,:)
ans =.5×7表性别吸烟者身高重量ID BMI血压_______________________________________________ adams {女性'} false 66 137 8235 22.112 127 83亚历山大{男性'}真正的69 131 1300 25.252 128 99 allen {女性'} false 63 143 743225.331 113 80安德森{女性'}假68 128 1577 19.462 114 77 Bailey {女性'}假68 130 2239 19.766 113 81
放在ID
作为第一列,按位置重新排序表变量。
T = T(:,[5 1:4 6 7]);T(1:5,:)
ans =.5×7表ID性别吸烟者身高BMI血压___________ __________________________________________________________________________________________________2127 83亚历山大1300 {'male'} TRUE 69 131 25.252 128 99 ALLEN 7432 {'女性'} FALSE 63 14325.331 113 80安德森1577 {女性'}假68 128 19.462 114 77 Bailey 2239 {女性'} False 68 130 19.766 113 81
您还可以通过名字重新排序表变量。要重新排序表中的变量,使性别
是最后:
找'性别'
在里面variablenames.
表格的财产。
移动'性别'
到了变量名称的单元格数组的末尾。
使用名称的单元阵列重新排序表变量。
varnames = t.properties.variablenames;其他=〜strcmp('性别',varnames);varnames = [varnames(其他)'性别'];T = T(:,varnames);
显示重新排序表的前五行。
T(1:5,:)
ans =.5×7表ID吸烟者身高体重BMI血压性别____ ______ ______ ______ ______ _____________ __________亚当斯8235假66 137 22.112 127 83 { '女'}亚历山大1300真69 171 25.252 128 99 { '男'}艾伦7432假63 143 25.331 113 80 {”女 '}安德森1577假68 128 19.462 114 77 {' 女 '}贝利2239假68 130 19.766 113 81 {' 女'}
可以将整个表写入一个文件,或创建一个子表,以原始表的选定部分写入到一个单独的文件中。
写T.
与文件一起writetable
功能。
writetable(T,'allpatientsbmi.txt');
你可以使用可阅读
函数读取数据allpatientsbmi.txt.
到一个新表。
创建一个子表和子表写入到一个单独的文件。删除包含对病人谁是吸烟者的数据行。然后取出吸烟者
多变的。非摩托车
仅包含不吸烟者的患者的数据。
非吸烟者= T;toDelete =(nonsmokers.Smoker == TRUE);不吸烟者(toDelete,:) = [];nonsmokers.Smoker = [];
写非摩托车
到一个文件中。
writetable(非吸烟者,'nonsmokersBMI.txt');
array2table
|cell2table
|导入工具|可阅读
|调用sortRows
|struct2table
|概括
|桌子
|writetable