我在Fortran語言寫了一個矩陣如下:如何讀取輸出FORTRAN二進制NxNxN矩陣成Python
real(kind=kind(0.0d0)), dimension(256,256,256) :: dense
[...CALCULATION...]
inquire(iolength=reclen)dense
open(unit=8,file=fname,&
form='unformatted',access='direct',recl=reclen)
write(unit=8,rec=1)dense(:,:,:)
close(unit=8)
我想讀這回的Python。我見過的所有東西都是2D NxN數組而不是3D數組。在Matlab中,我可以把它讀作:
fid = fopen(nfilename,'rb');
mesh_raw = fread(fid,ndim*ndim*ndim,'double');
fclose(fid);
mesh_reshape = reshape(mesh_raw,[ndim ndim ndim]);
我只需要在Python等效 - 大概有類似的負載/重塑可用的工具。如果有一種更加友好的緊湊方式來寫出來供Python理解,我很樂意提供建議。它可能會看起來像this:。我只是不熟悉我的案例的等效語法。一個很好的參考就足夠了。謝謝。
struct.unpack似乎是要走的路,但我不知道該怎麼辦我的情況。 – Griff
做任何[這些方法使用scipy/numpy](http://www.scipy.org/Cookbook/InputOutput#head-b0de67a6dbb3b1ba2584c65263552dc519225cb1)幫助你? –
你會在這裏找到解決方案:http://stackoverflow.com/questions/10475839/reading-a-direct-access-fortran-unformatted-file-in-python – milancurcic