谢谢 @Falccm 的耐心指导。代码写完回来自己答一下这个问题,为以后有类似问题的知友提供参考。
这个dat文件如falccm所说fread和 memmapfile都是可以读取的。但由于我的处理系统和这个dat文件的生成系统的高低位不同,所以一开始怎么读取都不正确,之后注意下高低位问题就好了。这里给一下正常情况读取的代码示例:
第一种:fread
fid = fopen('A.DAT','rb');
for i=1:1000
[b1(i),c1] = fread(fid,1,'uint16');
[b2(i),c2] = fread(fid,1,'uint32');
[b3(i),c3] = fread(fid,1,'uint32');
[b4(i),c4] = fread(fid,1,'int16');
[b5(i),c5] = fread(fid,1,'int16');
[b6(i),c6] = fread(fid,1,'int16');
[b7(i),c7] = fread(fid,1,'uint32');
[b8(i),c8] = fread(fid,1,'int32');
[b9(i),c9] = fread(fid,1,'int32');
[b10(i),c10] = fread(fid,1,'int32');
end
j=[b1;b2;b3;b4;b5;b6;b7;b8;b9;b10]';
fclose(fid);
第二种:memmapfile
m = memmapfile('A.DAT',...
'Format',{'uint16',[1,1],'Q;...
'uint32',[1,1],'A';...
'uint32',[1,1],'S';...
'int16',[1,1],'D';...
'int16',[1,1],'F';...
'int16',[1,1],'G';...
'uint32',[1,1],'H';...
'int32',[1,1],'X';...
'int32',[1,1],'Y';...
'int32',[1,1],'Z'},'Repeat',inf)
A=m.data;
以上。