Matlab - 如何一次读取2个字节

时间:2013-07-27 01:22:05

标签: matlab

我有一个这样的数字 - 778310098 - 我想一次读取2个字节。所以,我期待我的输出为77; 83; 10; 09;我尝试使用以下内容: uint16(fread(fileID,inf,'ubit8'))和我得到的输出是各个数字的ASCII值:      55      55      56      51      49      48      48      57      56

我需要做什么才能获得所需的输出?

2 个答案:

答案 0 :(得分:3)

要读取文本文件中的ASCII数字对(我们倾向于不用byets描述文本文件,而是用字符描述),请使用:

[10 1] * (fread(fileID,[2 inf], 'char') - 48)

要从二进制文件中成对读取字节,请尝试

fread(fileID,inf, '*uint16')

答案 1 :(得分:1)

一种方法是将其转换为字符串,然后处理字符串,然后将其转换回整数。虽然这可能不是特别优雅或完美,但这会成功吗?

a = 778310098;
b = num2str(a);

for i = 1:2:length(b)
    if i == length(b)                 % to handle the case for odd input
        split = str2num(b(i))
    else
        split = str2num(b(i:i+1))     % handle all others
    end
end