本文说明如何在表中添加、删除和重新排列列向变量。您可以使用 addvars、movevars 和 removevars 函数添加、移动和删除表变量。作为备选方法,您还可以使用圆点语法或对表进行索引来修改表变量。使用 splitvars 和 mergevars 函数可以拆分多列变量和将多个变量合并为一个变量。最后,可以使用 rows2vars 函数调整表的方向,使表的行成为输出表的变量。

您也可以使用变量编辑器修改表变量。

加载样本数据并创建表

从 patients MAT 文件加载样本数据数组。显示加载到工作区中的变量的名称和大小。

load patients
whos -file patientsName                            Size            Bytes  Class      AttributesAge                           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

创建两个表。用通过患者问卷收集来的信息创建一个表 T,再用测量患者得来的数据创建另一个表 T2。每个表有 100 行。

T = table(Age,Gender,Smoker);
T2 = table(Height,Weight,Systolic,Diastolic);

显示每个表的前五行。

head(T,5)
ans=5×3 tableAge      Gender      Smoker___    __________    ______38     {'Male'  }    true  43     {'Male'  }    false 38     {'Female'}    false 40     {'Female'}    false 49     {'Female'}    false
head(T2,5)
ans=5×4 tableHeight    Weight    Systolic    Diastolic______    ______    ________    _________71       176        124          93    69       163        109          77    64       131        125          83    67       133        117          75    64       119        122          80

串联添加来自另一个表的变量

通过将表 T 与 T2 水平串联来向前者添加变量。

T = [T T2];

显示 T 的前五行。

head(T,5)
ans=5×7 tableAge      Gender      Smoker    Height    Weight    Systolic    Diastolic___    __________    ______    ______    ______    ________    _________38     {'Male'  }    true        71       176        124          93    43     {'Male'  }    false       69       163        109          77    38     {'Female'}    false       64       131        125          83    40     {'Female'}    false       67       133        117          75    49     {'Female'}    false       64       119        122          80

表 T 现在包含 7 个变量和 100 行。

如果您要以水平方式串联的表具有行名称,则 horzcat 将通过匹配行名称来串联表。因此,这些表必须使用相同的行名称,但列顺序无关紧要。

将变量从工作区添加到表中

将来自工作区变量 LastName 的患者姓名添加到 T 中的第一个表变量之前。您可以使用新位置附近的变量的名称在表中指定任何位置。使用引号来引用表变量的名称。但是,如果输入参数是工作区变量,则不要对其使用引号。

T = addvars(T,LastName,'Before','Age');
head(T,5)
ans=5×8 tableLastName      Age      Gender      Smoker    Height    Weight    Systolic    Diastolic____________    ___    __________    ______    ______    ______    ________    _________{'Smith'   }    38     {'Male'  }    true        71       176        124          93    {'Johnson' }    43     {'Male'  }    false       69       163        109          77    {'Williams'}    38     {'Female'}    false       64       131        125          83    {'Jones'   }    40     {'Female'}    false       67       133        117          75    {'Brown'   }    49     {'Female'}    false       64       119        122          80

您还可以使用数字指定表中的位置。例如,使用数字指定位置时,上述命令的等效语法为 T = addvars(T,LastName,‘Before’,1)。

使用圆点语法添加变量

添加新的表变量的另一种方法是使用圆点语法。当您使用圆点语法时,新变量始终添加为最后一个表变量。无论变量是什么数据类型,只要行数与表相同,就可以添加到表。

通过水平串联两个变量 Systolic 和 Diastolic 来创建一个针对血压的新变量。将它添加到 T。

T.BloodPressure = [Systolic Diastolic];
head(T,5)
ans=5×9 tableLastName      Age      Gender      Smoker    Height    Weight    Systolic    Diastolic    BloodPressure____________    ___    __________    ______    ______    ______    ________    _________    _____________{'Smith'   }    38     {'Male'  }    true        71       176        124          93         124     93  {'Johnson' }    43     {'Male'  }    false       69       163        109          77         109     77  {'Williams'}    38     {'Female'}    false       64       131        125          83         125     83  {'Jones'   }    40     {'Female'}    false       67       133        117          75         117     75  {'Brown'   }    49     {'Female'}    false       64       119        122          80         122     80

T 现在包含 9 个变量和 100 行。一个表变量可以有多个列。因此,虽然 BloodPressure 有两列,但它是一个表变量。

将一个新变量 BMI 添加到表 T 中,该表包含每位患者的体重指数。BMI 是一个关于身高和体重的函数。当您计算 BMI 时,您可以引用 T 中的 Weight 和 Height 变量。

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

计算 BMI 时使用的运算符 ./ 和 .^ 分别表示逐元素除法和乘方。

显示表 T 的前五行。

head(T,5)
ans=5×10 tableLastName      Age      Gender      Smoker    Height    Weight    Systolic    Diastolic    BloodPressure     BMI  ____________    ___    __________    ______    ______    ______    ________    _________    _____________    ______{'Smith'   }    38     {'Male'  }    true        71       176        124          93         124     93      24.547{'Johnson' }    43     {'Male'  }    false       69       163        109          77         109     77      24.071{'Williams'}    38     {'Female'}    false       64       131        125          83         125     83      22.486{'Jones'   }    40     {'Female'}    false       67       133        117          75         117     75      20.831{'Brown'   }    49     {'Female'}    false       64       119        122          80         122     80      20.426

在表中移动变量

使用 movevars 函数移动表变量 BMI,使其位于变量 Weight 之后。当按名称指定表变量时,请使用引号。

T = movevars(T,'BMI','After','Weight');
head(T,5)
ans=5×10 tableLastName      Age      Gender      Smoker    Height    Weight     BMI      Systolic    Diastolic    BloodPressure____________    ___    __________    ______    ______    ______    ______    ________    _________    _____________{'Smith'   }    38     {'Male'  }    true        71       176      24.547      124          93         124     93  {'Johnson' }    43     {'Male'  }    false       69       163      24.071      109          77         109     77  {'Williams'}    38     {'Female'}    false       64       131      22.486      125          83         125     83  {'Jones'   }    40     {'Female'}    false       67       133      20.831      117          75         117     75  {'Brown'   }    49     {'Female'}    false       64       119      20.426      122          80         122     80

您还可以使用数字指定表中的位置。例如,使用数字指定位置时,上述命令的等效语法为 T = movevars(T,'BMI,‘After’,6)。按名称引用变量通常更方便。

使用索引移动表变量

除上述方法外,您还可以通过索引来移动表变量。您可以对表进行索引,使用的语法与对矩阵进行索引相同。

将 BloodPressure 移动到 BMI 之后。

T = T(:,[1:7 10 8 9]);
head(T,5)
ans=5×10 tableLastName      Age      Gender      Smoker    Height    Weight     BMI      BloodPressure    Systolic    Diastolic____________    ___    __________    ______    ______    ______    ______    _____________    ________    _________{'Smith'   }    38     {'Male'  }    true        71       176      24.547     124     93        124          93    {'Johnson' }    43     {'Male'  }    false       69       163      24.071     109     77        109          77    {'Williams'}    38     {'Female'}    false       64       131      22.486     125     83        125          83    {'Jones'   }    40     {'Female'}    false       67       133      20.831     117     75        117          75    {'Brown'   }    49     {'Female'}    false       64       119      20.426     122     80        122          80

在包含多个变量的表中,使用 movevars 函数通常更方便。

删除变量

要删除表变量,请使用 removevars 函数。删除 Systolic 和 Diastolic 表变量。

T = removevars(T,{'Systolic','Diastolic'});
head(T,5)
ans=5×8 tableLastName      Age      Gender      Smoker    Height    Weight     BMI      BloodPressure____________    ___    __________    ______    ______    ______    ______    _____________{'Smith'   }    38     {'Male'  }    true        71       176      24.547     124     93  {'Johnson' }    43     {'Male'  }    false       69       163      24.071     109     77  {'Williams'}    38     {'Female'}    false       64       131      22.486     125     83  {'Jones'   }    40     {'Female'}    false       67       133      20.831     117     75  {'Brown'   }    49     {'Female'}    false       64       119      20.426     122     80

使用圆点语法删除变量

您也可以使用圆点语法和空矩阵 [] 删除变量。从表中删除 Age 变量。

T.Age = [];
head(T,5)
ans=5×7 tableLastName        Gender      Smoker    Height    Weight     BMI      BloodPressure____________    __________    ______    ______    ______    ______    _____________{'Smith'   }    {'Male'  }    true        71       176      24.547     124     93  {'Johnson' }    {'Male'  }    false       69       163      24.071     109     77  {'Williams'}    {'Female'}    false       64       131      22.486     125     83  {'Jones'   }    {'Female'}    false       67       133      20.831     117     75  {'Brown'   }    {'Female'}    false       64       119      20.426     122     80

使用索引删除变量

您还可以使用索引和空矩阵 [] 删除变量。从表中删除 Gender 变量。

T(:,'Gender') = [];
head(T,5)
ans=5×6 tableLastName      Smoker    Height    Weight     BMI      BloodPressure____________    ______    ______    ______    ______    _____________{'Smith'   }    true        71       176      24.547     124     93  {'Johnson' }    false       69       163      24.071     109     77  {'Williams'}    false       64       131      22.486     125     83  {'Jones'   }    false       67       133      20.831     117     75  {'Brown'   }    false       64       119      20.426     122     80

拆分和合并表变量

要将多列表变量拆分为多个单列变量,请使用 splitvars 函数。将变量 BloodPressure 拆分为两个变量。

T = splitvars(T,'BloodPressure','NewVariableNames',{'Systolic','Diastolic'});
head(T,5)
ans=5×7 tableLastName      Smoker    Height    Weight     BMI      Systolic    Diastolic____________    ______    ______    ______    ______    ________    _________{'Smith'   }    true        71       176      24.547      124          93    {'Johnson' }    false       69       163      24.071      109          77    {'Williams'}    false       64       131      22.486      125          83    {'Jones'   }    false       67       133      20.831      117          75    {'Brown'   }    false       64       119      20.426      122          80

同样,您可以使用 mergevars 函数将多个相关的表变量组合在一个变量中。将 Systolic 和 Diastolic 重新组合为一个变量,并将其命名为 BP。

T = mergevars(T,{'Systolic','Diastolic'},'NewVariableName','BP');
head(T,5)
ans=5×6 tableLastName      Smoker    Height    Weight     BMI          BP    ____________    ______    ______    ______    ______    __________{'Smith'   }    true        71       176      24.547    124     93{'Johnson' }    false       69       163      24.071    109     77{'Williams'}    false       64       131      22.486    125     83{'Jones'   }    false       67       133      20.831    117     75{'Brown'   }    false       64       119      20.426    122     80

调整行的方向使其变为变量

您可以使用 rows2vars 函数调整表或时间表中行的方向,使它们成为输出表中的变量。但是,如果该表具有多列变量,则必须先拆分它们,才能调用 rows2vars。

对 T 的行调整方向。指定 T 中患者的姓名是输出表中表变量的名称。T3 的第一个变量包含 T 的变量的名称。T3 的其余每个变量都包含来自 T 对应行的数据。

T = splitvars(T,'BP','NewVariableNames',{'Systolic','Diastolic'});
T3 = rows2vars(T,'VariableNamesSource','LastName');
T3(:,1:5)
ans=6×5 tableOriginalVariableNames    Smith     Johnson    Williams    Jones _____________________    ______    _______    ________    ______{'Smoker'   }             1         0           0          0{'Height'   }            71        69          64         67{'Weight'   }           176       163         131        133{'BMI'      }        24.547    24.071      22.486     20.831{'Systolic' }           124       109         125        117{'Diastolic'}            93        77          83         75

您可以对 T3 使用圆点语法,以数组形式访问患者数据。但是,如果输入表的行值不能串联,则输出表的变量是元胞数组。

T3.Smith
ans = 6×11.000071.0000176.000024.5467124.000093.0000

MATLAB 基础知识 数据类型 表 添加、删除和重新排列表变量相关推荐

  1. MATLAB 基础知识 数据类型 表 添加和删除表行

    本文演示了如何在表中添加和删除行.您也可以使用变量编辑器来编辑表. 加载样本数据 加载样本患者数据并创建一个表 T. load patients T = table(LastName,Gender,A ...

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

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

  3. MATLAB 基础知识 数据类型 表 修改单位、说明和表变量名称

    本文演示了如何访问和修改变量单位.说明和名称这几种表属性.您也可以使用变量编辑器来编辑这些属性值. 加载样本数据 加载样本患者数据并创建一个表. load patients BloodPressure ...

  4. matlab 预设变量大小,新手必看MATLAB基础知识2:基本数据操作(其一):变量和赋值...

    大家好,今天小尼比继续来给大家讲解和MATLAB有关的知识,在<新手必看MATLAB基础知识1:MATLAB操作界面与MATLAB设置>中,有人评论留言,提出了"有点看不懂这些操 ...

  5. matlab怎么排列一群变量,添加、删除和重新排列表变量

    加载样本数据并创建表 从 patients MAT 文件加载样本数据数组.显示加载到工作区中的变量的名称和大小. load patients whos -file patients Name Size ...

  6. MATLAB 基础知识 数据类型 时间表 创建时间表

    本文演示如何创建时间表.合并时间表以及将多个时间表中的数据调整到一个公共时间向量中.公共时间向量可以包含其中一个时间表或两个时间表中的时间,也可以是一个您指定的全新时间向量.以下示例演示如何计算和显示 ...

  7. MATLAB 基础知识 数据类型 数据类型转换 将文本转换为数值

    本文说明如何将文本转换为它所表示的数值.通常,当有表示要绘制或在计算中使用的数字的文本时,需要执行这种转换.例如,文本可能来自文本文件或电子表格.如果在将其导入 MATLAB 时,您尚未将其转换为数值 ...

  8. MATLAB 基础知识 数据类型 元胞数组 创建元胞数组

    本文说明如何使用 {} 运算符或 cell 函数创建元胞数组. 当要将数据放入一个元胞数组中时,请使用元胞数组构造运算符 {} 创建该数组. myCell = {1, 2, 3;'text', ran ...

  9. MATLAB 基础知识 数据类型 函数句柄 使用函数句柄调用局部函数

    本文演示如何创建指向局部函数的句柄.如果函数返回指向局部函数的句柄,则可以在主函数外部调用局部函数.此方法可让您在单个文件中包含多个可调用函数. 在您的工作文件夹下的 ellipseVals.m 文件 ...

最新文章

  1. 在CentOS 6.9 x86_64上安装nginx 1.12.2
  2. keras构建前馈神经网络(feedforward neural network)进行分类模型构建基于早停法(Early stopping)
  3. springboot使用定时器及发送邮件
  4. NoSQL(三):主从复制
  5. 巧妙喝水打败多种疾病
  6. Java Collections CheckedCollection()方法与示例
  7. Linux中的Total Video Converter——超级音视频转换软件:Winff
  8. 2018年python工作好找吗-2018年涨工资了吗?Python 工程师薪资最新出炉
  9. 隐藏与显现_惠州楼盘冷热不均价格涨跌互现 差异化调控作用显现
  10. NumPy学习笔记之argsort()函数
  11. 系统集成项目管理工程师10大管理5个过程组47个过程域
  12. python for ArcGIS 绘制成都市板块地图
  13. 明解C语言 【日】 柴田望洋 第十章 指针 代码清单和练习代码
  14. ToolBoxFeatureDataZoomOpts:工具箱区域缩放配置项
  15. Tensorflow2 model.compile()理解
  16. C#篇-unity和序列化和反序列
  17. Vue3 的 Reactive 响应式到底是什么
  18. 错误:‘Series‘ objects are mutable, thus they cannot be hashed
  19. [NXP.iMX6UL] 驱动开发
  20. BI神器Power Query(4)-- PQ导入动态名称定义的表格

热门文章

  1. java 取视频第一帧,java获取视频的第一帧
  2. 度小满金融与南京银行牵手,背后有三层深意
  3. matlab纹理柱状图程序
  4. 简单五步设置群晖NAS绑定自有域名实现外网访问
  5. JS 中的 event?event:window.event什么意思?求详解。
  6. Happy Wu-新人报道!
  7. 微信读书,还有没有商业变现的机会?
  8. 条码打印机的场景应用及条码打印机的特点有哪些
  9. js 鼠标移动和离开
  10. 词法分析——输入缓冲