我有一个文件,它是K,17位,小端,无符号整数的串联。在Matlab中,我可以使用fread(fd, K, 'bit17', 'ieee-le')
。如何读取octave
中文件描述符的17位?
答案 0 :(得分:0)
您可以逐字节读取文件,然后使用bitget
获取数据的二进制表示,然后将二进制表示转换为十进制数。
nbits = 17;
fd = fopen("myfile","rb");
bytes = fread(fd,Inf,"uint8=>uint8");
n = numel(bytes);
bits = false(8, n);
for k = 1:8
bits(k,:)=bitget(bytes,k);
end
count = floor(n * 8/nbits);
val = 2.^(0:nbits-1) * reshape(bits(1:count*nbits),nbits,[]);