我有一些二進制輸入文件(擴展名爲「.bin」),描述了海洋深度的二維場,並且都是負浮點數。我已經能夠加載它們在matlab如下:在python和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代碼中做了什麼錯誤?
而不是隻做你自己的文件解析,你不能使用NumPy和Matlab支持的文件格式嗎? – MSeifert
文件格式爲「.bin」,不幸的是,這是我使用的模型輸入文件所需的格式。不知道這是否回答你的問題。 – henrifdrake