poster
2019-12-10, 20:48
我有一个10001行的文本文件,其中第一行包含属性的名称,随后几行包含值。属性类型是混合的(字符串和浮点数),并以'\ t'分隔。
有谁知道将此类文本文件导入matlab并将这些数据组织为适当的结构以进行进一步分析的最佳方法是什么?
我想将这些数据用于某些数据挖掘应用程序,因此如果每个列也可以包含元数据(变量类型,数字/分类值...),这将非常有用。
感谢你的建议!
回答:
如何通过名称或整数索引对列进行索引?
对于第一种情况,最好的方法是使用结构数组。原始数据中每一行的数组元素。有两个问题要回答:
字段将如何命名?您事先知道标题吗?所有标头字符串是否都是有效的MATLAB变量名称,并且可以用作字段名称?函数genvarname在某些情况下可能会有所帮助。
如何将textscan输出的数据矩阵转换为结构数组?查看MATLAB帮助中的cell2struct函数。如果您的字段名称(标题)确实是动态的,那么您仍然可以通过动态创建参数cell然后调用cell2struct(args{:})来使用cell2struct 。
如果对列进行数字索引,则保留单元格矩阵作为textscan输出。
对于元数据,我将使用另一个变量,即结构或结构数组。
更多&回答... (https://stackoverflow.com/questions/3415961)
有谁知道将此类文本文件导入matlab并将这些数据组织为适当的结构以进行进一步分析的最佳方法是什么?
我想将这些数据用于某些数据挖掘应用程序,因此如果每个列也可以包含元数据(变量类型,数字/分类值...),这将非常有用。
感谢你的建议!
回答:
如何通过名称或整数索引对列进行索引?
对于第一种情况,最好的方法是使用结构数组。原始数据中每一行的数组元素。有两个问题要回答:
字段将如何命名?您事先知道标题吗?所有标头字符串是否都是有效的MATLAB变量名称,并且可以用作字段名称?函数genvarname在某些情况下可能会有所帮助。
如何将textscan输出的数据矩阵转换为结构数组?查看MATLAB帮助中的cell2struct函数。如果您的字段名称(标题)确实是动态的,那么您仍然可以通过动态创建参数cell然后调用cell2struct(args{:})来使用cell2struct 。
如果对列进行数字索引,则保留单元格矩阵作为textscan输出。
对于元数据,我将使用另一个变量,即结构或结构数组。
更多&回答... (https://stackoverflow.com/questions/3415961)