Matlab中,table类似R语言dataframe。发现网上没有太多介绍,由于我要做完整的数据处理工作,这个类型是自己比较熟悉的,所以准备扒一遍教程和各种资料。
- table读取:
readtable('abc.csv')
- table构造:
VariableName 用{ }或者字符数组str = ["a", "b"]存放,逗号隔开
table(column1, column2, ...., 'VariableNames', column_name)
Size 表示table的行列数:50行3列
VariableTypes表示列属性
table('Size',[50 3],'VariableTypes',{'string','double','datetime'})
- 增加table列:
table(:, col) = col
- 合并两张table
按行合并
horz(t1, t2);
按列合并
cat(1, t1, t2);
``cat``也可以用于按行合并,第一个参数(dim)为2即可。
- 常用的VariableTypes包括:
'double', 'single'
'logical'
'datetime'
'cell'. 注意,matlab建议使用cell存储character而不是char。用char会被自动转换成cell array。
- 将数组(矩阵)转换为table:
array2table(matrix)
*************包含列名
array2table(matrix, 'VariableNames', column_name)
************包含行名
array2table(matrix, 'RowNames', {});
- 访问table数据
table.column_name %访问列
table(x, y) %访问行列
table.column_name(x) %访问行列
- Properties:
Description: ''
UserData: []
DimensionNames: {'Row' 'Variables'}
VariableNames: {1×183 cell}
VariableDescriptions: {}
VariableUnits: {}
VariableContinuity: []
RowNames: {}
CustomProperties: 未设置自定义属性。
- 修改VariableNames:
table.Properties.VariableNames = newnameArray
- 类型转换
很多ui.control对象都不接受table类型作为参数,一般需要将table转化为数组。
转换列的方法:
table.column_name(m:n)