youme_zx 发表于 2009-4-9 22:12

matlab二进制文件读取问题:

matlab二进制文件读取问题:
数据:00000000 00000001
用matlab的fread(fid,1,'int16')读取后,
显示的结果是256(即00000001 00000000),
正确的结果应该是1(即00000000 00000001),这是怎么回事啊,难道还存在回事,难道还存在高低位问题。

maigicku 发表于 2009-4-10 10:55

用textread吧。。

ChaChing 发表于 2009-4-10 23:29

回复 沙发 maigicku 的帖子

How?
可以的話,說清楚些! 3Q

maigicku 发表于 2009-4-13 09:34

呃~~好像偶理解错了。。刚一开始认为LZ只是想单纯地读取数据的问题。。
认为用textread(' ','%d')读出来,可发现LZ的问题不是那么简单。。

ChaChing 发表于 2009-4-13 22:07

回复 地板 maigicku 的帖子

ㄡ不要紧, 偶也时常理解错楼主的意思!

maigicku 发表于 2009-4-14 11:17

我又试了试,不过我按下面的程序得出来的结果是12336,并不是LZ所说的256,可能程序不一样,希望LZ能帖出来:
y=fopen('T1.txt','r');
A=fread(y,1,'int16')

下面是偶个人的一些想法:
读取的文件是.txt,也就是文件中的第一位0是一个字符,而非二进制,占了8位,读取的时候每8位读一次,即读出来0所对应的就是48

如果LZ想得到1的结果,偶尝试着编了一下,不知是不是LZ所想要的:
y=textread('T1.txt','%q');
y1=y';
B=strcat(y1(1),y1(2));
C=str2num(char(B))

T1.TXT文件内容如下:
00000000 00000001
页: [1]
查看完整版本: matlab二进制文件读取问题: