我有一个二进制文件,但是采用“txt”格式,我想用Matlab提取这个文件的值,但实际上我不知道怎么做。 通常我使用一些软件将数据转换为可读的数据,但现在它不能使用此文件。 所以,任何人都知道如何做到这一点? 请一步一步来。 这是我的档案: GPS binary log file 消息的描述如下:
Header
Field # Field Name Field Type Desc Bytes Offset
1 Sync char Hex 0xAA 1 0
2 Sync char Hex 0x44 1 1
3 Sync char Hex 0x12 1 2
4 Header Lgth uchar Length of header 1 3
5 Message ID ushort Message ID of log 2 4
8 Message Lgth ushort length of message 2 8
11 Time Status enum Quality of GPS time 1 13
12 Week ushort GPS week number 2 14
13 Milliseconds GPSec Time in ms 4 16
您也可以在此链接中查看有关说明的完整文档: Description document by NOVAtel
这是我的简单代码:
fileID = fopen('test.txt');
A = fscanf(fileID,'%x');
fileID = fopen('dec.txt','w');
fprintf(fileID,'%6.2f %12.8f\n',A);
fclose(fileID);
我在matlab中使用这段代码解决了这个问题:
fileID = fopen('test.txt');
A = fscanf(fileID,'%x');
fid = fopen('binary1.bin', 'w');
fwrite(fid, A)
fclose(fid);
然后使用软件NovAtel converter4将二进制文件转换为ASCII文件和Rinex。 非常感谢Mr.aDonda