创建并查看表

根据工作区变量创建一个表并查看它。或者,使用 导入工具 或 readtable 功能根据电子表格或文本文件创建表。使用这些函数从文件导入数据时,每个列都会变为表变量。

将 100 位患者的样本数据从 patients MAT 文件加载到工作区变量中。

load patients

whos

Name Size Bytes Class Attributes

Age 100x1 800 double

Diastolic 100x1 800 double

Gender 100x1 11412 cell

Height 100x1 800 double

LastName 100x1 11616 cell

Location 100x1 14208 cell

SelfAssessedHealthStatus 100x1 11540 cell

Smoker 100x1 100 logical

Systolic 100x1 800 double

Weight 100x1 800 double

使用包含患者数据的列向变量填充表。您可以按名称访问和分配表变量。当您从工作区变量分配表变量时,您可以为表变量指定不同名称。

创建一个表并使用 Gender、Smoker、Height 和 Weight 工作区变量填充它。显示前五行。

T = table(Gender,Smoker,Height,Weight);

T(1:5,:)

ans=5×4 table

Gender Smoker Height Weight

__________ ______ ______ ______

{'Male' } true 71 176

{'Male' } false 69 163

{'Female'} false 64 131

{'Female'} false 67 133

{'Female'} false 64 119

作为备选方法,可以使用 readtable 函数从逗号分隔文件中读取患者数据。readtable 会读取文件中的所有列。

通过读取文件 patients.dat 中的所有列来创建一个表。

T2 = readtable('patients.dat');

T2(1:5,:)

ans=5×10 table

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' }

您可以使用圆点表示法 T.varname 分配多个列向表变量,其中 T 是表,varname 是所需的变量名称。创建随机的数字标识符。然后,将其赋给一个表变量,并将该表变量命名为 ID。您分配到表中的所有变量必须具有相同的行数。显示 T 的前五行。

T.ID = randi(1e4,100,1);

T(1:5,:)

ans=5×5 table

Gender Smoker Height Weight ID

__________ ______ ______ ______ ____

{'Male' } true 71 176 8148

{'Male' } false 69 163 9058

{'Female'} false 64 131 1270

{'Female'} false 67 133 9134

{'Female'} false 64 119 6324

您分配到表中的所有变量必须具有相同的行数。

使用 summary 函数创建汇总表来查看每个变量的数据类型、说明、单位和其他描述性统计量。

summary(T)

Variables:

Gender: 100x1 cell array of character vectors

Smoker: 100x1 logical

Values:

True 34

False 66

Height: 100x1 double

Values:

Min 60

Median 67

Max 72

Weight: 100x1 double

Values:

Min 111

Median 142.5

Max 202

ID: 100x1 double

Values:

Min 120

Median 5485.5

Max 9706

返回表的大小。

size(T)

ans = 1×2

100 5

T 包含 100 行和 5 个变量。

创建一个新的包含 T 中前五行的较小表并显示该表。您可以在括号中使用数值索引指定行和变量。此方法类似于通过索引数值数组来创建子数组的情况。Tnew 是一个 5×5 的表。

Tnew = T(1:5,:)

Tnew=5×5 table

Gender Smoker Height Weight ID

__________ ______ ______ ______ ____

{'Male' } true 71 176 8148

{'Male' } false 69 163 9058

{'Female'} false 64 131 1270

{'Female'} false 67 133 9134

{'Female'} false 64 119 6324

创建一个包含 Tnew 中所有行以及第二至最后行中的变量的较小表。使用 end 关键字指示表的最后一个变量或最后一行。Tnew 是一个 5×4 的表。

Tnew = Tnew(:,2:end)

Tnew=5×4 table

Smoker Height Weight ID

______ ______ ______ ____

true 71 176 8148

false 69 163 9058

false 64 131 1270

false 67 133 9134

false 64 119 6324

按行和变量名称访问数据

使用行和变量名称而非数值索引向 T 中添加行名称并对表进行索引。通过将 LastName 工作区变量赋给 T 的 RowNames 属性来添加行名称。

T.Properties.RowNames = LastName;

显示 T 的前五行以及行名称。

T(1:5,:)

ans=5×5 table

Gender Smoker Height Weight ID

__________ ______ ______ ______ ____

Smith {'Male' } true 71 176 8148

Johnson {'Male' } false 69 163 9058

Williams {'Female'} false 64 131 1270

Jones {'Female'} false 67 133 9134

Brown {'Female'} false 64 119 6324

返回 T 的大小。此大小不会更改,因为在计算表大小时不会包括行和变量名称。

size(T)

ans = 1×2

100 5

选择姓氏为 'Smith' 和 'Johnson' 的患者的所有数据。在本例中,使用行名称比使用数值索引更为简单。Tnew 是一个 2×5 的表。

Tnew = T({'Smith','Johnson'},:)

Tnew=2×5 table

Gender Smoker Height Weight ID

________ ______ ______ ______ ____

Smith {'Male'} true 71 176 8148

Johnson {'Male'} false 69 163 9058

通过变量名称索引来选择名为 'Johnson' 的患者的身高和体重。Tnew 是一个 1×2 的表。

Tnew = T('Johnson',{'Height','Weight'})

Tnew=1×2 table

Height Weight

______ ______

Johnson 69 163

您可以使用圆点语法访问表变量(如 T.Height 中所示),也可以按命名索引访问表变量(如 T(:,'Height') 中所示)。

计算结果并将其添加为表变量

您可以访问表变量的内容,然后使用 MATLAB® 函数对它们执行计算。根据现有表变量中的数据计算体质指数 (BMI),并将其添加为新变量。绘制 BMI 与患者状态为烟民或非烟民的关系图。向表中添加血压读数,并绘制血压与 BMI 的关系图。

使用表变量 Weight 和 Height 计算 BMI。您可以提取 Weight 和 Height 以进行计算,同时在包含其余患者数据的表中方便地保留 Weight、Height 和 BMI。显示 T 的前五行。

T.BMI = (T.Weight*0.453592)./(T.Height*0.0254).^2;

T(1:5,:)

ans=5×6 table

Gender Smoker Height Weight ID BMI

__________ ______ ______ ______ ____ ______

Smith {'Male' } true 71 176 8148 24.547

Johnson {'Male' } false 69 163 9058 24.071

Williams {'Female'} false 64 131 1270 22.486

Jones {'Female'} false 67 133 9134 20.831

Brown {'Female'} false 64 119 6324 20.426

填充 BMI 的变量单位和变量说明属性。您可以将元数据添加到任何表变量中,以进一步描述该变量中包含的数据。

T.Properties.VariableUnits{'BMI'} = 'kg/m^2';

T.Properties.VariableDescriptions{'BMI'} = 'Body Mass Index';

创建一个直方图以探索这组患者的吸烟与体质指数之间是否存在关系。您可以使用 Smoker 表变量中的逻辑值来索引 BMI,这是因为每行都包含同一患者的 BMI 和 Smoker 值。

tf = (T.Smoker == false);

h1 = histogram(T.BMI(tf),'BinMethod','integers');

hold on

tf = (T.Smoker == true);

h2 = histogram(T.BMI(tf),'BinMethod','integers');

xlabel('BMI (kg/m^2)');

ylabel('Number of Patients');

legend('Nonsmokers','Smokers');

title('BMI Distributions for Smokers and Nonsmokers');

hold off

从工作区变量 Systolic 和 Diastolic 中添加患者的血压读数。每一行都包含同一患者的 Systolic、Diastolic 和 BMI 值。

T.Systolic = Systolic;

T.Diastolic = Diastolic;

创建一个直方图来显示 Diastolic 和 BMI 的较高值之间是否存在关系。

tf = (T.BMI <= 25);

h1 = histogram(T.Diastolic(tf),'BinMethod','integers');

hold on

tf = (T.BMI > 25);

h2 = histogram(T.Diastolic(tf),'BinMethod','integers');

xlabel('Diastolic Reading (mm Hg)');

ylabel('Number of Patients');

legend('BMI <= 25','BMI > 25');

title('Diastolic Readings for Low and High BMI');

hold off

对表变量和输出行进行重新排序

要准备表进行输出,请按名称重新排列该表行的顺序,并按位置或名称重新排列表变量。显示表的最终排列。

按行名称对表进行排序,以使患者按字母顺序列出。

T = sortrows(T,'RowNames');

T(1:5,:)

ans=5×8 table

Gender Smoker Height Weight ID BMI Systolic Diastolic

__________ ______ ______ ______ ____ ______ ________ _________

Adams {'Female'} false 66 137 8235 22.112 127 83

Alexander {'Male' } true 69 171 1300 25.252 128 99

Allen {'Female'} false 63 143 7432 25.331 113 80

Anderson {'Female'} false 68 128 1577 19.462 114 77

Bailey {'Female'} false 68 130 2239 19.766 113 81

创建一个 BloodPressure 变量,将血压读数保存在一个 100×2 的表变量中。

T.BloodPressure = [T.Systolic T.Diastolic];

从表中删除 Systolic 和 Diastolic,因为它们是冗余的。

T.Systolic = [];

T.Diastolic = [];

T(1:5,:)

ans=5×7 table

Gender Smoker Height Weight ID BMI BloodPressure

__________ ______ ______ ______ ____ ______ _____________

Adams {'Female'} false 66 137 8235 22.112 127 83

Alexander {'Male' } true 69 171 1300 25.252 128 99

Allen {'Female'} false 63 143 7432 25.331 113 80

Anderson {'Female'} false 68 128 1577 19.462 114 77

Bailey {'Female'} false 68 130 2239 19.766 113 81

要将 ID 作为第一列,请按位置重新排列表变量。

T = T(:,[5 1:4 6 7]);

T(1:5,:)

ans=5×7 table

ID Gender Smoker Height Weight BMI BloodPressure

____ __________ ______ ______ ______ ______ _____________

Adams 8235 {'Female'} false 66 137 22.112 127 83

Alexander 1300 {'Male' } true 69 171 25.252 128 99

Allen 7432 {'Female'} false 63 143 25.331 113 80

Anderson 1577 {'Female'} false 68 128 19.462 114 77

Bailey 2239 {'Female'} false 68 130 19.766 113 81

您还可以按名称对表变量进行重新排序。要重新排列表变量以使 Gender 成为最后一个变量,请执行以下操作:

在该表的 VariableNames 属性中查找 'Gender'。

将 'Gender' 移到变量名称元胞数组末尾。

使用名称元胞数组重新排列表变量的顺序。

varnames = T.Properties.VariableNames;

others = ~strcmp('Gender',varnames);

varnames = [varnames(others) 'Gender'];

T = T(:,varnames);

显示经过重新排序的表的前五行。

T(1:5,:)

ans=5×7 table

ID Smoker Height Weight BMI BloodPressure Gender

____ ______ ______ ______ ______ _____________ __________

Adams 8235 false 66 137 22.112 127 83 {'Female'}

Alexander 1300 true 69 171 25.252 128 99 {'Male' }

Allen 7432 false 63 143 25.331 113 80 {'Female'}

Anderson 1577 false 68 128 19.462 114 77 {'Female'}

Bailey 2239 false 68 130 19.766 113 81 {'Female'}

将表写入文件

您可以将整个表写入文件,或创建一个子表来将原始表的选定部分写入一个单独的文件。

使用 writetable 函数将 T 写入文件。

writetable(T,'allPatientsBMI.txt');

您可以使用 readtable 函数将 allPatientsBMI.txt 中的数据读入新表中。

创建一个子表并将其写入一个单独的文件中。删除包含烟民患者数据的行。然后删除 Smoker 变量。nonsmokers 仅包含非烟民患者的数据。

nonsmokers = T;

toDelete = (nonsmokers.Smoker == true);

nonsmokers(toDelete,:) = [];

nonsmokers.Smoker = [];

将 nonsmokers 写入文件。

writetable(nonsmokers,'nonsmokersBMI.txt');

matlab如何创建table,创建和使用表 - MATLAB Simulink - MathWorks 中国相关推荐

  1. matlab对信号积分,对信号求积分 - Simulink - MathWorks 中国

    说明 Integrator 模块输出其输入信号相对于时间的积分值. Simulink® 将 Integrator 模块作为具有一种状态的动态系统进行处理.模块动态由以下方程指定: {x˙(t)=u(t ...

  2. matlab 低级图形错误,解决低级图形问题 - MATLAB Simulink - MathWorks 中国

    选择适合您的系统的渲染器实现 MATLAB 显示所用的图形渲染器实现是硬件加速.基础硬件加速还是软件.默认情况下,MATLAB 会尝试使用硬件加速实现(如果您的图形硬件支持).您可以通过切换到软件实现 ...

  3. 如何建立分类模型matlab,创建简单模型 - MATLAB Simulink - MathWorks 中国

    创建简单模型 您可以使用 Simulink® 来对系统建模,然后仿真该系统的动态行为.本教程中创建简单模型所使用的基本方法也适用于创建更复杂的模型.此示例对简化的汽车运动进行仿真.当踩下油门踏板时,汽 ...

  4. matlab 数字转化为文字,将文本转换为数值 - MATLAB Simulink - MathWorks 中国

    双精度值 将文本转换为双精度值的推荐方法是使用 str2double 函数.它可以转换字符向量.字符串数组和字符向量元胞数组. 例如,使用单引号创建字符向量,并将其转换为它所表示的数字. X = st ...

  5. matlab文字转数据,将文本转换为数值 - MATLAB Simulink - MathWorks 中国

    双精度值 将文本转换为双精度值的推荐方法是使用 str2double 函数.它可以转换字符向量.字符串数组和字符向量元胞数组. 例如,使用单引号创建字符向量,并将其转换为它所表示的数字. X = st ...

  6. 如何用MATLAB绘制真值表,编写真值表 - MATLAB Simulink - MathWorks 中国

    编写真值表 在创建新真值表后,您就可以对它进行编写以根据您的设定执行.要编写真值表,您需要添加条件.决策和动作.有关创建真值表的详细信息,请参阅使用真值表对组合逻辑建模. 真值表仅在 Simulink ...

  7. matlab目标支持包安装问题,配置系统目标文件 - MATLAB Simulink - MathWorks 中国

    配置系统目标文件 要对模型进行配置以用于代码生成,请按照选择支持代码生成的求解器和从 STF 浏览器中选择系统目标文件中的步骤进行操作.选择系统目标文件时,其他模型配置参数会相应更改,以满足执行环境的 ...

  8. matlab怎么没有编辑器,实时编辑器介绍 - MATLAB Simulink - MathWorks 中国

    添加人口统计数据 将实时脚本划分为多个节.每一节均可以包含文本.代码和输出.MATLAB 代码显示为灰色背景,输出显示为白色背景.要创建新的节,请转至实时编辑器选项卡,然后点击分节符按钮. 添加 19 ...

  9. matlab memory 代数环,代数环概念 - MATLAB Simulink - MathWorks 中国

    代数环求解器的工作原理 当模型中包含代数环时,Simulink 在每个时间步使用非线性求解器解算代数环.求解器执行迭代以确定代数约束的解(如果存在).因此,有代数环的模型的运行速度可能比没有代数环的模 ...

最新文章

  1. 关于hibernate的实体类中有集合类型转化成JSON的工具类 - 怀念今天的专栏 - 博客频道...
  2. LB 负载均衡的层次结构
  3. Thymeleaf中设置每个页面引入公共css样式
  4. hdu 5434(状态压缩+矩阵优化)
  5. 哈夫曼树+密码题+TTL
  6. 安装python时需要勾选_工业洗衣机安装时需要注意什么?
  7. 算法 Tricks(四)—— 判断序列中的字符/数值是否交替出现
  8. 程序员面试难题,在你结婚的时候领导要求你30分钟归队,你会如何
  9. bzoj4771 七彩树
  10. 2007 Microsoft Office 加载项:Microsoft Save as PDF 或 XPS
  11. sun java认证考试大纲_SUN认证JAVA程序员考试大纲
  12. 小米浏览器导出html,小米浏览器离线视频如何导出 小米浏览器离线视频导出教程...
  13. JAVA 实现《中国象棋》游戏
  14. 马斯克血洗推特!传机器学习裁员90%,团队直接解散
  15. java水果忍者7723_水果忍者之天下第一
  16. Android中的PID,UID,TID
  17. 数据在计算机中存储形式
  18. GlobalCash全球付万事达虚拟信用卡-可用于国外支付购物
  19. 一个解决MacBook Pro 突然连接无线不能上网 方案
  20. 关于el-upload上传图片的一些坑clearFiles()的使用

热门文章

  1. COGNOS8 Transformer使用IQD做为数据源时报 TR1008 错误
  2. l2tp vpn server搭建教程
  3. lightgbm处理类别特征
  4. 当日、昨日、当周、本周、当月、上个月获取方法
  5. windows cmd命令配置ip
  6. 闽高校计算机等级考试试题,闽高校计算机等级考试信息技术选择题(含答案)确定书中页码版...
  7. elementui 走马灯图片自适应
  8. 微信小程序生成清晰海报并保存到本地
  9. 用java创建person类_创建一个Person类,有以下属性:名字、身高、性别、年龄,创建10个对象,用java程序...
  10. 微信小程序入门到实战(1)-基础知识