我在 Matlab 上上传文件时遇到了一些问题。在使用文件菜单下的“加载数据”选项或使用命令之前,我已经多次加载文本文件。我要读取的文件有列标签、数字数据,前三列由文本数据组成。当我尝试上传文件时,它说该文件仅包含一列,并将所有信息上传在一列而不是 6 个不同的列中。在文本文件中,列由制表符分隔,我将分隔符设置为制表符。
有谁知道为什么它将信息上传到一列而不是单独的列?
谢谢!
我在 Matlab 上上传文件时遇到了一些问题。在使用文件菜单下的“加载数据”选项或使用命令之前,我已经多次加载文本文件。我要读取的文件有列标签、数字数据,前三列由文本数据组成。当我尝试上传文件时,它说该文件仅包含一列,并将所有信息上传在一列而不是 6 个不同的列中。在文本文件中,列由制表符分隔,我将分隔符设置为制表符。
有谁知道为什么它将信息上传到一列而不是单独的列?
谢谢!
根据您提供的有关文本文件形状的详细信息,我猜它具有以下形式:
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
为了获得更多信息,我建议您阅读此页面。