我在Matlab上传文件时遇到了一些麻烦。通过在文件菜单下使用“加载数据”选项或使用命令,我已经多次加载文本文件。我正在尝试阅读的文件包含列标签,数字数据,前三列包含文本数据。当我尝试上传文件时,它说该文件只包含一列,并将所有信息上传到一列而不是6列不同的列。在文本文件中,列由制表符分隔,我将分隔符设置为制表符。
有没有人知道为什么它会将信息上传到一列而不是单独的列?
谢谢!
答案 0 :(得分:0)
根据您提供的有关文本文件形状的详细信息,我猜它有以下形式:
label1 info1 text1 1 1.1 3.1
label2 info2 text2 2 2.1 3.2
lebel3 info3 text3 3 3.1 3.3
...
您可以使用循环和fscanf
函数以及简单循环来加载所有这些数据。
如果N
是文本文件的行数,则以下代码可能适用于您:
f=fopen('test.txt');
for k=1:N
for i=1:3
a{k,i} = fscanf(f,'%s',1);
end
b(k,:) = fscanf(f,['%f' '%f' '%f'],3);
end
fclose(f);
然后你将有一个字符串a
的单元格数组:
a =
'label1' 'info1' 'text1'
'label2' 'info2' 'text2'
'lebel3' 'info3' 'text3'
一个数字数据为b
的数组:
b =
1.0000 1.1000 3.1000
2.0000 2.1000 3.2000
3.0000 3.1000 3.3000
为了获得更多信息,我建议您阅读page。