MATLAB中的table数据类型:高效数据管理的利器
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.680030.0000 1.820035.0000 1.7500matrixTable =5×3 tableVar1 Var2 Var3 _______ ________ _______0.14189 0.65574 0.757740.42176 0.035712 0.743130.91574 0.84913 0.392230.79221 0.93399 0.655480.95949 0.67874 0.17119
总结
MATLAB中的table数据类型为处理表格数据提供了强大而灵活的工具。通过本文介绍的各种方法,你可以初步了解table的使用方法。