将二进制文件中的数据读入matlab,拆分为矢量

时间:2014-06-23 12:23:04

标签: matlab file binary octave

我需要帮助将二进制文件中的数据读入100000x16维的数组中。我使用的是octave。

以下是该文件外观截图的链接:http://s29.postimg.org/uclh7whtz/Screenshot.png

我尝试过使用fscanf和fread,但不知道用它们走哪条路 - 用它们搞砸了精度等等......

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

您也可以通过以下方式在MATLAB中使用"dlmread"函数。

a=dlmread('file.dat','\t',1,0);

这将跳过标题行并读取完整的数字矩阵。这是一个例子:

file name=example.dat

time    x1  y1  z1
0.000   0.084   0.015   0.0181
0.016   0.008   0.001   0.8012
0.032   0.081   0.064   0.235

a=dlmread('example.dat','\t',1,0);

a =

         0    0.0840    0.0150    0.0181
    0.0160    0.0080    0.0010    0.8012
    0.0320    0.0810    0.0640    0.2350

请通过dlmread帮助获取进一步的帮助。

答案 1 :(得分:0)

如果它与精度混淆,你很有可能只需要将16行的值指定为浮点%f,如下所示:

 fid=fopen(strcat(Name,'.dat'));
 C=textscan(fid, '%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f'); % one '%f' for row, is that 16?
 fclose(fid);

这当然会忽略标题(但我想你想这样做,不是吗?)。

相关问题