MATLAB中的table数据类型:高效数据管理的利器

发布于:2025-05-31 ⋅ 阅读:(22) ⋅ 点赞:(0)

MATLAB中的table数据类型:高效数据管理的利器

什么是table数据类型?

MATLAB中的table是一种用于存储列向数据的数据类型,它将不同类型的数据组织在一个表格结构中,类似于电子表格或数据库表。自R2013b版本引入以来,table已成为MATLAB中处理表格数据的首选方式。

table的每个列可以包含不同类型的数据(数值、字符、分类、逻辑等),但每列必须具有相同的行数。这种数据结构特别适合处理异构数据集,是数据分析和工作流中的重要工具。

创建table

基本创建方法

这里就如同excel创建的内容一样,只是在matlab中需要使用数组进行创建,需要保证内容维度相同。

% 从工作区变量创建table
names = {'Alice'; 'Bob'; 'Charlie'};
ages = [25; 30; 35];
height = [1.68; 1.82; 1.75];
isStudent = [true; false; false];
%创建table
personTable = table(names, ages, height, isStudent)

在这里插入图片描述

指定列名和行名

表的变量名可以创建时同时生成,或者随后更改

personTable = table(names, ages, height, isStudent, ...
    'VariableNames', {'FullName', 'Years', 'Height_m', 'IsStudent'}, ...
    'RowNames', {'Person1', 'Person2', 'Person3'})
% 创建后修改列名
personTable.Properties.VariableNames = {'Name', 'Age', 'Height', 'IsStudent'};

从文件导入数据创建table

表格内容可以直接excel导入,或者CSV文件导入,文件内容如下:
在这里插入图片描述
但是导入之后需要调整标签内容

% 从CSV文件读取
dataTable = readtable('mydata.csv');

% 从Excel文件读取
excelTable = readtable('data.xlsx', 'Sheet', 'Sheet1')
% 提取每一行的名字
rowName=excelTable.Var1;
% 删除第一行
excelTable.Var1=[];
% 给每一行名字
excelTable.Properties.RowNames=rowName;

% 显示前几行
head(excelTable)

excel直接读入的内容:第一列并不是名字,需要移除后重新添加列名
在这里插入图片描述

访问和操作table数据

数据索引方法

% 使用点表示法访问列
ages = personTable.Age

% 使用大括号访问原始数据
firstHeight = personTable{1, 'Height'}

% 使用圆括号创建子表
subTable = personTable(1:2, {'Name', 'Age'})

% 逻辑索引
students = personTable(personTable.IsStudent,:)

逻辑索引非常像excel中的筛选功能,比如筛选身高超过1.8的人

添加和删除列

% 添加新列
personTable.Gender = categorical({'F'; 'M'; 'M'});
personTable.Weight = [65,70,75]';
% 计算并添加派生列
personTable.BMI = personTable.Weight ./ (personTable.Height.^2);
% 删除列
personTable.IsStudent=[]

派生列是通过已经存在的列计算得到新的列
在这里插入图片描述

排序和筛选

% 按年龄排序
sortedTable = sortrows(personTable, 'Age');
% 筛选特定条件的数据
tallPeople = personTable(personTable.Height > 1.80, :);

在这里插入图片描述

table与其它数据类型的转换

与数组和矩阵的转换

% table转换为矩阵(仅数值数据)
numericData = table2array(personTable(:, {'Age', 'Height'}));

% 矩阵转换为table
matrix = rand(5,3);
matrixTable = array2table(matrix, 'VariableNames', {'Var1', 'Var2', 'Var3'});

输出结果

numericData =
   25.0000    1.6800
   30.0000    1.8200
   35.0000    1.7500
   
matrixTable =
  5×3 table
     Var1        Var2       Var3  
    _______    ________    _______
    0.14189     0.65574    0.75774
    0.42176    0.035712    0.74313
    0.91574     0.84913    0.39223
    0.79221     0.93399    0.65548
    0.95949     0.67874    0.17119

总结

MATLAB中的table数据类型为处理表格数据提供了强大而灵活的工具。通过本文介绍的各种方法,你可以初步了解table的使用方法。


网站公告

今日签到

点亮在社区的每一天
去签到