我需要帮助将二进制文件中的数据读入100000x16维的数组中。我使用的是octave。
以下是该文件外观截图的链接:http://s29.postimg.org/uclh7whtz/Screenshot.png
我尝试过使用fscanf和fread,但不知道用它们走哪条路 - 用它们搞砸了精度等等......
感谢您的帮助!
答案 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);
这当然会忽略标题(但我想你想这样做,不是吗?)。