我的.dat文件的一部分如下所示:
1.916E+09 3.00 400.89 30.00 8.868E+05 1.848E+02 9.034E-05
1.916E+09 3.00 400.27 300.00 8.723E+05 1.860E+02 9.014E-05
1.916E+09 3.00 400.66 30.00 8.574E+05 1.873E+02 9.000E-05
。 。 。 。 。
它有32行数据。理想情况下,我想将具有相同格式的数据导入变量。我正在使用matlab 2013a和
我试过data = load('filename') --which提示我:使用加载时出错。 ASCII文件第2行的列数必须与前一行相同。
我试过data = load('filename') - 提示我: 未定义的函数'readtable'用于'char'类型的输入参数。
我正在尝试使用文本扫描,但我无法弄清楚如何使用。我是matlab的新手。谢谢!
答案 0 :(得分:1)
load
仅适用于MATLAB格式的文件。它们也是以专有方式编码的,因为您能够读取.dat
文件,所以它实际上不是MATLAB文件!此外,textscan
肯定是要走的路。如果您的数据真的如此,那么您可以使用textscan
,如下所示:
fid = fopen('mydata.dat');
C = textscan(fid, '%f%f%f%f%f%f%f');
fclose(fid);
每行有7列,对我来说它们看起来都像double
。因此C
将返回的是7个元素的单元格数组。每个单元格将包含每列。
您可以使用C{1}
访问第一列,使用C{2}
访问第二列,依此类推。