2013-06-26 104 views
0

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

有没有人有任何想法,为什么它会将信息上传到一列而不是在单独的列?

谢谢!

+1

你试过['importdata'](http://www.mathworks.com/help/matlab/ref/importdata.html)吗?然而,前三个文本列最终会出现在结果的“textdata”字段中,但您可以提取它们。 – pm89

+0

是的,我曾尝试importdata,它仍然无法正常工作。 – astudent

回答

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

+0

Thanks @ChocoPouce!我曾尝试过,但由于数据太多(或者IDK为什么),我的电脑会说没有更多的内存空间。 – astudent