我在Matlab上上传文件时遇到了一些麻烦。在使用文件菜单下的“加载数据”选项或使用命令之前,我已经多次加载文本文件。我正在尝试阅读的文件有列标签,数字数据和前三列由文本数据组成。当我试图上传文件时,它表示该文件只包含一列,并将所有信息上传到一列而不是六列。在文本文件中,列由标签分隔,我将分隔符设置为标签。Matlab不能读取文本文件
有没有人有任何想法,为什么它会将信息上传到一列而不是在单独的列?
谢谢!
我在Matlab上上传文件时遇到了一些麻烦。在使用文件菜单下的“加载数据”选项或使用命令之前,我已经多次加载文本文件。我正在尝试阅读的文件有列标签,数字数据和前三列由文本数据组成。当我试图上传文件时,它表示该文件只包含一列,并将所有信息上传到一列而不是六列。在文本文件中,列由标签分隔,我将分隔符设置为标签。Matlab不能读取文本文件
有没有人有任何想法,为什么它会将信息上传到一列而不是在单独的列?
谢谢!
从你关于你的文本文件的我猜它有以下形式的形状提供的详细信息:
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。
Thanks @ChocoPouce!我曾尝试过,但由于数据太多(或者IDK为什么),我的电脑会说没有更多的内存空间。 – astudent
你试过['importdata'](http://www.mathworks.com/help/matlab/ref/importdata.html)吗?然而,前三个文本列最终会出现在结果的“textdata”字段中,但您可以提取它们。 – pm89
是的,我曾尝试importdata,它仍然无法正常工作。 – astudent