你很近。假设您建议的结果是正确的,您需要这样做:
fid = fopen('12h_ticks');
ii1 = fread(fid,1,'int32','b'); % int32 or uint32
ii2 = fread(fid,1,'int32','b'); % int32 or uint32
ii3 = fread(fid,1,'int32','b'); % int32 or uint32
ff1 = fread(fid,1,'float32','b'); % single precision
ff2 = fread(fid,1,'float32','b'); % single precision
fclose(fid); % Don't forget to close the file
输出全部转换为双精度值fread
。如果您想将数据保留为其本机格式,您可以对相关行执行此操作:
ii1 = fread(fid,1,'int32=>int32','b');
ii2 = fread(fid,1,'int32=>int32','b');
ii3 = fread(fid,1,'int32=>int32','b');
ff1 = fread(fid,1,'float32=>single','b');
ff2 = fread(fid,1,'float32=>single','b');
最后,由于这是 Matlab,您可能希望将数据作为两个向量读取:
ii = fread(fid,3,'int32','b'); % 3-by-1 vector
ff = fread(fid,2,'float32','b'); % 2-by-1 vector