matlab读int16读文件_matlab如何读入混合变量格式的dat文件?

谢谢 @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;

以上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值