我正在尝试在MatLab中读取制表符分隔的txt文件。 该文件包含由数字,文本,日期,日期时间,您可以想到的所有内容组成的列。有些列中有很长的句子,有逗号和所有内容。
它超过了excel的行限制(我有大约150万行)所以我无法将其转换为CSV或XLSX文件。
我尝试了以下内容:
tableDataEDM = tdfread(pathDataEDM,'\t');
我回来了,需要统计和机器学习工具箱' 我没有它
tableDataEDM = dlmread(pathDataEDM,'\t');
文件和格式字符向量不匹配。 我回来了'麻烦阅读'数字'来自文件'
的字段这是因为该文件包含文本,数字和日期以及其他所有内容。 dlmread喜欢我猜的数字数据
tableDataEDM = readtable(pathDataEDM,'Delimiter','\t','ReadVariableNames',true);
I get back:
Error using readtable (line 197)
Reading failed at line 6. All lines of a text file must have the same number of delimiters. Line 6 has 10
delimiters, while preceding lines have 32.
Note: readtable detected the following parameters:
'HeaderLines', 0, 'Format', '%q%q%q%q%D%D%D%q%q%q%q%q%q%q%q%q%q%q%q%q%q%q%D%D%q%q%q%q%q%q%q%q%q'
Error in Edm_FinderComp_CrossOver (line 33)
tableDataEDM = readtable(pathDataEDM,'Delimiter','\t','ReadVariableNames',false);
我不知道为什么会这么说。我可以很容易地将这些数据导入python。有什么我想要的东西试着把它变成matlab吗?
对导入制表符分隔的txt文件的任何帮助表示赞赏。我没有尝试过文本扫描,因为它看起来很痛苦。
答案 0 :(得分:1)
您可以使用textscan
。这会将每列放在tableDataEDM
的单独单元格中。假设每行都有一个int
\ t int
\ t string
:
tableDataEDM = textscan(fopen(pathDataEDM),'%d %d %s')
最后一个参数'%d %d %s'
您应该更改以匹配您的格式。
答案 1 :(得分:0)
您是否尝试过使用导入向导并将分隔符更改为标签?只需将文件拖到工作区窗口中,就会出现向导。