介绍在MATLAB中如何将表格转化为普通数组或者元胞数组,涉及函数table2array,table2cell,以及其它有关知识。
工具/原料
MATLAB R2016a
转化为普通数组
1、对于一个有多列同类型数据的普通表格,直接使用table2array即可得到对应数组。数组中的列就是表格中的列拼接而成。
2、表格中的每个变量列不一定是列向量,有可能是宽度大于1的矩阵。此时使用table2array时,会将这些矩阵横向拼接起来。
3、如果各列的数据类型不同,转化后的数组会金泫险缋取所谓的“dominent type”.比如,single和double恽贴淑溪类型都有的话,转化后为single.single,double,int8都有的话,转化后为int8.
4、但是,如果有的列是数值数组,有的列却是元胞数组(字符串组成的或其它),则无法将它们合并。
5、此时,可以将输入参数改为T(:,[1,3]),即表格T第一列和第三列组成的子表格。此时可以转化成功。
6、如果表格中的每列都是高维数组,则会按照如图的拼接方式进行拼接。返回的数组是同样维度的高维数组。
7、此时要注意的事项有二:一是所有表变量必须有相同的维数,二是所有表变量除了第弛阻廖娓二维之外,必须长度相同。(第二维是表变量的合并方向所以可以长度不同)
8、另外,要吧表格转成数组,也可以使用大括号。T{砜实蛰斓:,:}等价于table2array(T)T{:,[1,3]}则相当于取出T的第一列和第三列进行转换。
转化为元胞数组
1、转化为元胞数组非常好理解,直接使用table2cell就可以转化,将表格的列变量都转成元胞数组再拼接起来。
2、使用T.Properties.VariableNames可以获取列变量名称组成的元胞行向量。因此,如图代码可以把列变量名拼接在第一行。
3、T.Properties.RowNames可以获取行名称组成的元胞列向量。可以使用如图代码将行名称拼在第一列。