将矩阵打印到Fortran

时间:2017-09-16 09:03:35

标签: python arrays matrix fortran output

我有一个很大的,通常是方形的矩阵,我在Fortran中计算。在此之后,我需要将此数组打印到.txt或.dat文件中,以便Python可以读取它。最初我有问题,因为数组的格式不断变化(意味着行和列搞砸了),但我设法找到一种方法通过以下方法在Python中重建数组:

说我有1000 x 1000矩阵,然后打印出来我

open(6,file='/home/alpha_x.dat')
do i =1,1000
    write(6,'(1000F14.7)')(alpha_x(i,j), j=1,1000)
end do 
open(5,file='/home/alpha_y.dat')
do i =1,1000
    write(5,'(1000F14.7)')(alpha_y(i,j), j=1,1000)
end do 

之后用Python阅读,我只需使用

np.loadtxt('alpha_x.dat')
alpha_x = np.transpose(alpha_x)#This is required since the row-column order is interchanged in Fortran and Python

这很好用,直到我意识到,例如,如果我有一个尺寸为2000 x 2000的矩阵并且我在Fortran中完成所有这些并在Python中读取它,那么阵列的尺寸为4000 x 1000.我可以不过要认为这意味着我在Fortran中保存矩阵的方式肯定有问题...似乎矩阵以某种方式转换为n列x 1000行,无论多少。我如何解决这个问题,以便我可以在Python中用原始尺寸重建数组?

0 个答案:

没有答案