pisałem na matrycę w Fortran następująco:jak czytać outputted Fortran binarnej macierzy NxNxN w Pythonie
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)
Chcę przeczytać powrotem do Pythona. Wszystko, co widziałem, dotyczy tablic 2D NxN, a nie tablic 3D. W Matlab mogę go odczytać jako:
fid = fopen(nfilename,'rb');
mesh_raw = fread(fid,ndim*ndim*ndim,'double');
fclose(fid);
mesh_reshape = reshape(mesh_raw,[ndim ndim ndim]);
Muszę tylko równowartość w Pythonie - przypuszczalnie jest podobny ładunek/przekształcenia narzędzie dostępne. Jeśli istnieje bardziej przyjazny i kompaktowy sposób na napisanie go dla zrozumienia Pythona, jestem otwarty na sugestie. Prawdopodobnie będzie wyglądać na coś this:. Nie jestem obeznany z równoważną składnią mojej sprawy. Wystarczyłoby dobre odniesienie. Dzięki.
struct.unpack wydaje się droga, ale nie jestem pewien, co zrobić dla mojego przypadku. – Griff
Wykonaj dowolną z tych metod z użyciem [scipy/numpy] (http://www.scipy.org/Cookbook/InputOutput#head-b0de67a6dbb3b1ba2584c65263552dc519225cb1) pomóc? –
Znajdziecie rozwiązanie tutaj: http://stackoverflow.com/questions/10475839/reading-a-direct-access-fortran-unformatted-file-in-python – milancurcic