什麼我基本上是試圖做的是轉換一些MATLAB代碼到Python:MATLAB到Python FREAD
的MATLAB代碼:
for time = 100:model_times
for i = 1:5
indat = fread(fid,[48,40],'real*4');
vort(:,:,i,time) = indat';
end
end
FID保存文件路徑(DAT文件)是被用過的。 vort是預先分配的:vort =零(40,48,5,model_times)。 model_times是固定整數(例如100)。
似乎正在發生的事情是.dat文件數據正在以48x40矩陣的形式讀入,然後在固定的i和時間(循環計數器)中插入預分配的數組vort中。
我已經在Python嘗試這樣的:
for time in range(model_times):
for i in range(5):
vort[:,:,i,time] = np.fromfile(fid,np.float64)
我收到一個錯誤,指出, 「ValueError異常:操作數不能連同形狀(40,48)(6048000)播出」。錯誤發生在上面的Python代碼的最後一行。我也嘗試向錯誤行添加.reshape((40,48,5,model_times)),但接收到另一個錯誤,指出「ValueError:新數組的總大小必須保持不變」。
所以我的問題是,什麼是相當於MATLAB的「fread」,可以處理多維數組的Python?
從1到10的等級,其中1爲一個總的初學者和10是一個經驗豐富的老將,我約4
http://docs.scipy.org/doc/numpy/reference/generated/numpy.fromfile.html – dermen