语法功能介绍:
fileID =fopen('filename');
fopen : 打开文件,以二进制形式访问,并返回大于或等于3的整数,作为文件标识符。(MATLAB® 保留文件标识符 0、1 和 2 分别用于标准输入、标准输出(屏幕)和标准错误。)如果fopen无法打开文件,则返回-1.
filename :二进制文件
fileID : 二进制文件标识符
以该行代码为例:
timestamp=single(fread(fileID,1,'float'));
fread :读取由文件标识符fileID指示的文件中的数据赋值给变量timestamp
1 : 表示读取1个数据类型大小
float :表示存储到二进制文件中的数据类型,通过C保存
single : 表示读出二进制文件的数据类型,输出到MATLAB
举例实现代码:
% 读取二进制文件,filename为二进制文件
f=fopen('filename');
memorylength=uint32(fread(f,1,'uint32')); % 传递的总长度
timestamp=single(fread(f,1,'float')); % 时间戳
IsLocked=uint32(fread(fileID,1,'uint32')); % 标志位 1为无效,0为有效
% 车头方向为X轴,Y轴为左正右负
vision_classification=uint32(fread(fileID,1,'uint32')); % 对象分类
vision_y=single(fread(fileID,1,'float')); % 纵向坐标
vision_x=single(fread(fileID,1,'float')); % 横向坐标(m)
vision_vy=single(fread(fileID,1,'float')); % 纵向速度
vision_vx=single(fread(fileID,1,'float')); % 横向速度(m/s)
vision_confidence=single(fread(fileID,1,'float')); % 置信度
vision_exist_period=single(fread(fileID,1,'float')); % 存在寿命时间
vision_width=single(fread(fileID,1,'uint32')); % 宽度(m)
vision_height=single(fread(fileID ,1,'uint32')); % 高度
Note:
由于C代码存储数据,是以四个字节为准,于是在读取二进制文件时,需要注意前后两个或者三个数据之内,读取的位数应该是32位(4字节),不然会出现读取数据对应不上的问题。