使用Matlab从文件中读取二进制数据

时间:2015-07-28 10:55:57

标签: matlab floating-point precision

我目前正在尝试使用Matlab从.surf文件中读取数据。 (我意识到可能会有很多其他类似的问题,但每个问题都与其自身的问题有关,而且我无法找到我要提出的问题的副本;如果有其他问题和将此标记为重复...道歉!)

这就是数据文件的自述文件:

All of the files consist of 1-byte values, except for the
surface (surf) files, which consist of 4-byte floating-point
values.  The 1-byte phase values denote the phase scaled and
quantized to the range 0-255.  The 1-byte correlation and
mask values denote the weights 0-1 scaled and quantized to
the range 0-255.

我已经能够使用

读取.phase文件而没有任何问题
fn = 'spiral.257x257.phase';
f = fopen(fn);
fin = fread(f, [257, 257], 'uint8');
fclose(f);

但是,我无法阅读冲浪文件。我已尝试singlefloat32real*4fread的Matlab文档中的“浮点数”下的三个选项,以及uintuint32intint32long,这是4字节数据的其他选项。这些都没有给出正确的解决方案 - 甚至不是错误的缩放;他们完全不在了。

我非常坚持想法;任何建议(包括一般建议)都会受到最高的赞赏。

0 个答案:

没有答案