打开bin 16位右对齐

时间:2014-02-14 04:00:19

标签: matlab binary precision fread

我正在尝试使用MATLAB(R2011b)打开图像文件。存储bin文件(Xeneth)的程序表示它具有数据类型“Images(16位右对齐)( .png; .csv; * .bin)”。

在MATLAB中,我正在尝试使用以下命令打开文件:

fid=fopen('pathAndFile','r');
A=fread(fid,'inf','uint16');

不幸的是,它一直说“使用fread无效精度错误”。 可以在此处找到示例文件:https://www.dropbox.com/s/d8pj1lrhjsnbmvx/mHSdark_20ms_00014.bin

有人知道可能导致问题的原因吗?

2 个答案:

答案 0 :(得分:1)

我在Octave中有相同的错误消息,删除'inf'解决了问题

close all; clear all;

fid = fopen('mHSdark_20ms_00014.bin');
A = fread(fid, 'uint16');
fclose(fid);

size(A)

这是执行结果

octave:5> test
ans =

   20480       1

答案 1 :(得分:1)

这是因为fread的可选大小参数是数字,而不是字符串。也就是说,代替'inf',适当的输入只是inf,一个数字,而不是一个字符串。当您将字符串输入fread时,它会认为您指定的是精度而不是大小。

但是,默认大小为inf,这就是可以省略参数的原因。