MATLAB 基础知识 数据类型 表 创建和使用表

本文详细介绍了如何在MATLAB中创建、查看和操作表数据,包括根据工作区变量创建表,使用表数据进行计算,将表写入文件以及按名称和位置访问数据。此外,还展示了如何添加新变量、排序、重新组织表结构以及计算BMI等统计量。文章强调了表在存储和处理实验数据方面的便利性,提供了多个示例来演示这些操作。

本文说明如何根据工作区变量创建表,使用表数据,并将表写入文件以供日后使用。table 是一个数据类型,可将异构数据和元数据属性(例如变量名称、行名称、说明和变量单位)收集到一个容器中。

表适用于列向数据或表格数据,这些数据通常以列形式存储于文本文件或电子表格中。表中的每个变量可以具有不同的数据类型,但必须具有相同的行数。不过,表中的变量并不限于列向量。例如,表变量可以包含具有多列的矩阵,只要它的行数与其他表变量相同即可。表的典型用途是存储试验数据,使用行表示不同的观测值,使用列表示不同的测量变量。

表是用于收集和整理相关数据变量以及查看和汇总数据的便捷容器。例如,您可以提取变量以执行计算并方便地将相应结果添加为新的表变量。完成计算时,将该表写入文件以保存结果。

创建并查看表

根据工作区变量创建一个表并查看它。或者,使用“导入工具”或“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 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

结冰架构

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值