我有一些二进制输入文件(扩展名为“.bin”),描述了一个二维的海洋深度场,其中所有数值都是负浮点数。我已经能够按照以下方式在Matlab中加载它们:
f = fopen(filename,'r','b');
data = reshape(fread(f,'float32'),[128 64]);
这段Matlab代码给出了从0到-5200之间的双精度值。但是,当我尝试使用Python时,我获得了0到1e-37之间的奇怪值。Python代码如下:
f = open(filename, 'rb')
data = np.fromfile(f, np.float32)
data.shape = (64,128)
奇怪的是,对于地面而言,掩码值为0,在这两种情况下在(64,128)数组中出现了正确的位置。似乎只是
numpy.float32
值的幅度和符号不同。在Python代码中,我做错了什么?