1
如何在Fortran中将复杂(nXn)矩阵写入文件? 例如:在Fortran中编写复杂矩阵
DO I=1,N
write(14,'(100g15.5)') (M(i,j), j=1,n)
ENDDO
在这个例子中一个送为2N×N写入到文件,即实部和虚元素。 (a11)Im(a11),我怎样才能把它写成一个元素Re(a11)+ iIm(a11)?
如何在Fortran中将复杂(nXn)矩阵写入文件? 例如:在Fortran中编写复杂矩阵
DO I=1,N
write(14,'(100g15.5)') (M(i,j), j=1,n)
ENDDO
在这个例子中一个送为2N×N写入到文件,即实部和虚元素。 (a11)Im(a11),我怎样才能把它写成一个元素Re(a11)+ iIm(a11)?
使用内部函数REAL和AIMAG写复数的个体实和虚分量:
CHARACTER(LEN=3),DIMENSION(n,n) :: imag_unit = '+i*'
WHERE(AIMAG(M)<0.)imag_unit = '-i*'
DO I=1,N
write(14,'(100(g15.5,a,g15.5,2x))') (REAL(M(i,j)),imag_unit(i,j),&
ABS(AIMAG(M(i,j))), j=1,n)
ENDDO
说明:该代码定义具有值的字符串的矩阵“+ I”时虚部是正值,而虚部为负值的'-i'。由于负的虚部在格式('-i')中被考虑,所以我们取虚部的绝对值。相应地编辑格式描述符,以便用于读取输出文件的程序将能够读取它。
HI IRO-BOT,下面 是输出文件,当你看到它的不正常: 5.4585 +我-7.2662 -7.6987 + I 6.7328 6.4439 +我4.7736 4.4043 +我-7.7265 – bill 2012-01-03 20:10:04
我editted我的答案照顾正确的格式。 – milancurcic 2012-01-03 20:20:27
我希望它对于Matalb是可读的,即Matlab会理解它是nXn复杂矩阵 – bill 2012-01-03 20:21:12