- Matlab 教程
- MATLAB - 首页
- MATLAB - 概述
- MATLAB - 特性
- MATLAB - 环境设置
- MATLAB - 编辑器
- MATLAB - 在线
- MATLAB - 工作区
- MATLAB - 语法
- MATLAB - 变量
- MATLAB - 命令
- MATLAB - 数据类型
- MATLAB - 运算符
- MATLAB - 日期和时间
- MATLAB - 数字
- MATLAB - 随机数
- MATLAB - 字符串和字符
- MATLAB - 文本格式化
- MATLAB - 时间表
- MATLAB - M 文件
- MATLAB - 冒号表示法
- MATLAB - 数据导入
- MATLAB - 数据导出
- MATLAB - 数据归一化
- MATLAB - 预定义变量
- MATLAB - 决策
- MATLAB - 决策
- MATLAB - if end 语句
- MATLAB - if else 语句
- MATLAB - if…elseif else 语句
- MATLAB - 嵌套 if 语句
- MATLAB - switch 语句
- MATLAB - 嵌套 switch
- MATLAB - 循环
- MATLAB - 循环
- MATLAB - for 循环
- MATLAB - while 循环
- MATLAB - 嵌套循环
- MATLAB - break 语句
- MATLAB - continue 语句
- MATLAB - end 语句
- MATLAB - 数组
- MATLAB - 数组
- MATLAB - 向量
- MATLAB - 转置运算符
- MATLAB - 数组索引
- MATLAB - 多维数组
- MATLAB - 兼容数组
- MATLAB - 分类数组
- MATLAB - 元胞数组
- MATLAB - 矩阵
- MATLAB - 稀疏矩阵
- MATLAB - 表格
- MATLAB - 结构体
- MATLAB - 数组乘法
- MATLAB - 数组除法
- MATLAB - 数组函数
- MATLAB - 函数
- MATLAB - 函数
- MATLAB - 函数参数
- MATLAB - 匿名函数
- MATLAB - 嵌套函数
- MATLAB - return 语句
- MATLAB - 无返回值函数
- MATLAB - 局部函数
- MATLAB - 全局变量
- MATLAB - 函数句柄
- MATLAB - 滤波函数
- MATLAB - 阶乘
- MATLAB - 私有函数
- MATLAB - 子函数
- MATLAB - 递归函数
- MATLAB - 函数优先级顺序
- MATLAB - map 函数
- MATLAB - mean 函数
- MATLAB - end 函数
- MATLAB - 错误处理
- MATLAB - 错误处理
- MATLAB - try…catch 语句
- MATLAB - 调试
- MATLAB - 绘图
- MATLAB - 绘图
- MATLAB - 绘制数组
- MATLAB - 绘制向量
- MATLAB - 条形图
- MATLAB - 直方图
- MATLAB - 图形
- MATLAB - 二维线图
- MATLAB - 三维图
- MATLAB - 图表格式化
- MATLAB - 对数坐标轴图
- MATLAB - 绘制误差条
- MATLAB - 绘制三维等高线图
- MATLAB - 极坐标图
- MATLAB - 散点图
- MATLAB - 绘制表达式或函数
- MATLAB - 绘制矩形
- MATLAB - 绘制频谱图
- MATLAB - 绘制网格曲面图
- MATLAB - 绘制正弦波
- MATLAB - 插值
- MATLAB - 插值
- MATLAB - 线性插值
- MATLAB - 二维数组插值
- MATLAB - 三维数组插值
- MATLAB - 多项式
- MATLAB - 多项式
- MATLAB - 多项式加法
- MATLAB - 多项式乘法
- MATLAB - 多项式除法
- MATLAB - 多项式的导数
- MATLAB - 变换
- MATLAB - 变换
- MATLAB - 拉普拉斯变换
- MATLAB - 拉普拉斯滤波器
- MATLAB - 高斯-拉普拉斯滤波器
- MATLAB - 逆傅里叶变换
- MATLAB - 傅里叶变换
- MATLAB - 快速傅里叶变换
- MATLAB - 二维逆余弦变换
- MATLAB - 为坐标轴添加图例
- MATLAB - 面向对象
- MATLAB - 面向对象编程
- MATLAB - 类和对象
- MATLAB - 函数重载
- MATLAB - 运算符重载
- MATLAB - 用户自定义类
- MATLAB - 复制对象
- MATLAB - 代数
- MATLAB - 线性代数
- MATLAB - 高斯消去法
- MATLAB - 高斯-约旦消去法
- MATLAB - 简化行阶梯形
- MATLAB - 特征值和特征向量
- MATLAB - 积分
- MATLAB - 积分
- MATLAB - 二重积分
- MATLAB - 梯形法则
- MATLAB - 辛普森法则
- MATLAB - 其他
- MATLAB - 微积分
- MATLAB - 微分
- MATLAB - 矩阵的逆
- MATLAB - GNU Octave
- MATLAB - Simulink
- MATLAB - 有用资源
- MATLAB - 快速指南
- MATLAB - 有用资源
- MATLAB - 讨论
MATLAB - 表格
在 MATLAB 中,表格是一种数据结构,用于存储不同类型数据的表格型数据,这些数据存储在命名列中。您可以轻松地将表格与电子表格或数据库表格关联。您可以轻松地管理和操作 MATLAB 表格中的数据。
由于表格旨在处理不同类型的数据,因此表格的每一列都可以保存不同类型的数据,使其能够灵活地处理异构类型的数据。
在表格中,面向列的单个数据集存储在变量中。表格变量在数据类型和大小方面可能有所不同,只要它们都具有相同数量的行即可。就像结构中的字段一样,表格变量也具有特定的名称。
由于我们已经大量使用了矩阵,让我们了解表格和矩阵的不同之处。
矩阵 | 表格 |
---|---|
矩阵旨在存储相同类型的数据,即所有元素都具有相同的数据类型。因此,矩阵本质上是同构的。 |
表格列可以具有不同的数据类型,使其适合处理混合数据。因此,表格本质上是异构的。 |
在矩阵中,我们使用索引来访问行和列的元素。 |
在表格中,使用列名来访问表格中的数据。这为我们提供了一种更具描述性和意义的数据访问方式。 |
使用表格的优势
表格列被分配了名称,因此可以很容易地引用和更改特定数据。
表格列可以具有不同的数据类型,允许您在一个结构中存储各种信息。
表格带有内置函数,有助于快速概述数据。它还有助于处理缺失数据和重复数据。
使用表格的缺点
对于大型数据集,与简单的数组相比,表格占用的内存更多。
某些矩阵运算可能无法直接应用于表格。
创建 MATLAB 表格
要创建一个 MATLAB 表格,我们将使用 MATLAB 的内置函数 table()。您可以通过两种方式使用 table() 函数。
一种是从现有的工作区变量创建表格。
第二种是创建一个表格,为稍后填充值的变量预留空间。
语法
T = table(var1,...,varN) T = table('Size',sz,'VariableTypes',varTypes)
第一种语法 table(var1…varN),这里 var1…varN 是成为表格中一列的变量,它们应该具有相同数量的行。生成的表格 T 将包含这些列,列名将根据变量名自动分配。
第二种语法 table('Size',sz,'VariableTypes',varTypes),
'Size', sz − 指定表格的大小,即行数和列数。sz 是一个二元素向量,其中第一个元素表示行数,第二个元素表示列数。
'VariableTypes', varTypes − 指定表格中变量(列)的数据类型。varTypes 是一个元胞数组,每个元胞包含对应列的数据类型。
T = table(var1,...,varN) − 通过组合现有的变量 var1 到 varN 创建一个表格,而
T = table('Size',sz,'VariableTypes',varTypes) − 语法预先分配表格的空间并预先定义变量类型。当您预先知道数据的大小和类型时,这尤其有用。
表格创建示例
示例 1
在这个例子中,让我们检查学生的成绩,所以我们有学生的名字和他们的成绩。
std_names = {'Tiya', 'Riya', 'Siya', 'Jiya'} std_scores = [85, 72, 92, 78] studentTable = table(std_names, std_scores)
在上面的例子中,我们有包含学生姓名和成绩的变量 std_names 和 std_scores。table 函数将这些变量组合起来创建 studentTable,其中第一列命名为 'std_names',第二列命名为 'std_scores'。
在 MATLAB 命令窗口中执行后,输出为:
std_names = { [1,1] = Tiya [1,2] = Riya [1,3] = Siya [1,4] = Jiya } std_scores = 85 72 92 78
示例 2
使用与上述示例中相同的变量,让我们向其中添加自定义列名。
std_names = {'Tiya', 'Riya', 'Siya', 'Jiya'} std_scores = [85, 72, 92, 78] studentTable = table(std_names, std_scores, 'VariableNames', {'Student', 'TestScore'})
现在,当您在 MATLAB 命令窗口中执行相同的操作时,该表格将具有“学生”和“考试成绩”之类的列名。
std_names = { [1,1] = Tiya [1,2] = Riya [1,3] = Siya [1,4] = Jiya } std_scores = 85 72 92 78
示例 3
在这个例子中,我们将创建一个具有大小和变量类型的表格。
tableSize = [5, 3] variableTypes = {'string', 'double', 'int32'} Table = table('Size', tableSize, 'VariableTypes', variableTypes)
在这个例子中,tableSize 将表格的大小定义为 5 行 3 列,variableTypes 指示第一列应为 'string' 类型,第二列为 'double' 类型,第三列为 'int32' 类型。
当您在 MATLAB 命令窗口中执行相同的操作时,输出为:
tableSize = 5 3 variableTypes = { [1,1] = string [1,2] = double [1,3] = int32 }
访问表格数据
假设我们有以下表格。
std_names = {'Tiya', 'Riya', 'Siya', 'Jiya'} std_scores = [85, 72, 92, 78] studentTable = table(std_names, std_scores, 'VariableNames', {'Student', 'TestScore'})
输出将是:
std_names = { [1,1] = Tiya [1,2] = Riya [1,3] = Siya [1,4] = Jiya } std_scores = 85 72 92 78
要访问数据,您可以按照以下步骤操作:
T.Variables
例如
studentTable.Student studentTable.TestScore
执行上述操作后,您将得到:
>> studentTable.Student studentTable.TestScore ans = 1x4 cell array {'Tiya'} {'Riya'} {'Siya'} {'Jiya'} ans = 85 72 92 78
获取单个姓名和分数,您可以执行以下操作:
studentTable.Student{1}
执行后,您将得到:
>> studentTable.Student{1} ans = 'Tiya'
带有行名和列名的表格
在上一节中,我们已经看到了如何向表格中添加列名。在这里,我们将添加行名并访问已创建的表格中的数据。
Names = {'Siya';'Riya';'Jiya';'Tiya';'Kiya'}; Age = [48;23;28;20;49]; Height = [105;140;150;130;156]; Weight = [60;80;50;45;54]; T = table(Age,Weight,Height,'RowNames',Names)
Age、Weight 和 Height 数据向量成为表格的列。'RowNames' 参数将 Names 元胞数组中的名称指定为每个条目的行名。
当您在 MATLAB 命令窗口中执行相同的操作时,输出为:
>> Names = {'Siya';'Riya';'Jiya';'Tiya';'Kiya'}; Age = [48;23;28;20;49]; Height = [105;140;150;130;156]; Weight = [60;80;50;45;54]; T = table(Age,Weight,Height,'RowNames',Names) T = 5x3 table Age Weight Height ___ ______ ______ Siya 48 60 105 Riya 23 80 140 Jiya 28 50 150 Tiya 20 45 130 Kiya 49 54 156
现在,当您想要访问与名称相关的任何内容时,可以按如下方式进行:
T('Riya',:)
执行后的输出为:
>> T('Riya',:) ans = 1x3 table Age Weight Height ___ ______ ______ Riya 23 80 140
要获取多行数据,可以按照如下方法:
T({'Riya','Tiya'},:)
执行后的输出为:
>> T({'Riya','Tiya'},:) ans = 2x3 table Age Weight Height ___ ______ ______ Riya 23 80 140 Tiya 20 45 130