如何将.dat文件导入Matlab?

时间:2011-10-15 19:54:57

标签: matlab file-io import

我有一个文件(name.dat)是二进制数据, 它有12行标题,然后只有一列10 ^ 6个浮动数据点。

我在Matlab中搜索了我可以做的

fid=fopen('name.dat','r');
A= fscanf(fid, '%f');
fclose(fid);

当运行上面三行代码时,A为空; 它是有线的。

你可以帮我解决这个问题吗?

谢谢

2 个答案:

答案 0 :(得分:4)

最后,我弄清楚了。 当我用文本编辑器打开我的.dat文件时,它有标题和数据部分。 我可以看到标题(ASCII),但数据部分是随机机器码,这意味着它是二进制数据,我也知道它是浮点数。

所以我没有使用“textscan或fscan”,而是使用matlab中的“fread”函数来加载数据。

在加载到matlab之前,我删除了标题行,如果没有删除,加载的数据大小是不同的和错误的。

fid=fopen('name.dat','rt');
A = fread(fid,'*float32');
fclose(fid);

A是最终的数组数据。

答案 1 :(得分:2)

以下是使用TEXTSCAN函数的示例:

name.dat

header line 1
header line 2
0.81428
0.24352
0.92926
0.34998
0.1966
0.25108
0.61604
0.47329
0.35166
0.83083

MALTAB

fid = fopen('name.dat','rt');
A = textscan(fid, '%f', 'HeaderLines',2);
A = A{1};
fclose(fid);

A现在是带有十个数字的向量