MATLAB表格(table)按列组织数据,每列有名字、类型可以不同,读起来像带表头的 Excel。矩阵装不下异质列,cell 又容易丢掉列名时,用 table 更合适。
创建 table
Name = {'Riya'; 'Siya'; 'Tiya'};
Age = [25; 30; 28];
Height = [160; 175; 168];
Weight = [55; 70; 65];
T = table(Name, Age, Height, Weight)输出是一张带列名的表,列名就是传入的变量名。
访问列:点号
T.Age % 一整列(列向量)
T.Age(1) % 第一行的 Age
T(1, :) % 第一行
T(1:2, 'Age') % 取前两行的 Age 列增删行列
T.BMI = T.Weight ./ (T.Height/100).^2; % 新增一列
T(4, :) = {'Niya', 26, 170, 60}; % 追加一行
T(:, 'Weight') = []; % 删除 Weight 列列用 T.列名 访问。新增行时用 cell 给一行赋多列。删列写成 T(:, '列名') = []。
和 cell、普通数组互转
C = table2cell(T); % 表格到 cell
T2 = cell2table(C, 'VariableNames', {'Name','Age','Height','Weight'});
A = table2array(T(:, 'Age')); % 单列数值转普通数组读取 CSV / Excel 直接变表格
T = readtable('data.csv') % CSV 自动识别表头
T = readtable('data.xlsx') % Excel 也能读写回文件用 writetable:
writetable(T, 'out.csv')自查清单
- 表格的列在 MATLAB 里怎么用点号访问?
- 给表格追加一列,用什么写法?
- table 和 cell 怎么互转?单列怎么转成普通数组?
- 读 CSV 文件直接得到表格,用哪个函数?
- 学号这类文本列,为什么更常放在 cell 而不是数值数组里?