我有一个10001行的文本文件,其中第一行包含属性的名称,以下行包含值。属性类型是混合的(字符串和浮点数),并由'\ t'分隔。
有谁知道将这样的文本文件导入matlab的最佳方法是什么,并将这些数据组织成适当的结构以供进一步分析?
我想将这些数据用于某些数据挖掘应用程序,因此如果每列都包含元数据(变量类型,数字/分类值......)
感谢您的建议!
答案 0 :(得分:2)
如何按名称或整数索引对列进行索引?
对于第一种情况,最好的方法是使用struct-array。原始数据中每行的数组元素。有两个问题需要回答:
如何命名字段?你知道提前标题吗?所有标题字符串都是有效的MATLAB变量名称并且可以用作字段名称吗?在某些情况下,函数genvarname
会有所帮助。
如何将数据矩阵转换为textscan
的输出到结构数组中?查看MATLAB帮助中的函数cell2struct
。如果您的字段名称(标题)非常动态,那么您仍然可以通过动态创建参数单元格然后调用cell2struct
cell2struct(args{:})
醇>
如果以数字方式对列进行索引,则将单元格矩阵作为textscan
的输出。
对于元数据,我会使用另一个变量,即struct或struct-array。