Matlab没有读取文本文件

时间:2013-06-26 01:43:36

标签: matlab text-files tsv

我在Matlab上传文件时遇到了一些麻烦。通过在文件菜单下使用“加载数据”选项或使用命令,我已经多次加载文本文件。我正在尝试阅读的文件包含列标签,数字数据,前三列包含文本数据。当我尝试上传文件时,它说该文件只包含一列,并将所有信息上传到一列而不是6列不同的列。在文本文件中,列由制表符分隔,我将分隔符设置为制表符。

有没有人知道为什么它会将信息上传到一列而不是单独的列?

谢谢!

1 个答案:

答案 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