格式说明我已经在这里fortran format specifier for complex number一个复杂的矩阵
阅读格式说明对复数但是我不能将它修改我的愿望。我认识层面的双重复杂的矩阵,我希望它是这样写的:
{1.000E+00, 0.000E+00} {2.123E+00, 6.545E+20} {5.456E+24, 5.562E+12} ....
{1.000E+00, 0.000E+00} {2.123E+00, 6.545E+20} {5.456E+24, 5.562E+12}
{1.000E+00, 0.000E+00} {2.123E+00, 6.545E+20} {5.456E+24, 5.562E+12}
...
所以在大括号的第一部分应该是真正的部分和第二部分的虚部。矩阵元素应分别放在大括号内,并根据矩阵中的位置彼此相邻放置。
到目前为止,我可以只打印出正确的一个元素或下对方所有的矩阵元素具有以下格式:("{",ES10.3, ",", 1X, ES10.3 ,"}")
编辑:
program test
implicit none
double complex :: zz
double complex, dimension(3,4) :: aa
character (len=32) :: fmtString
zz = cmplx(1.d0, -2.d0)
fmtString = '("{",ES10.3, ",", 1X ES10.3,"}")'
write(0,fmt = fmtString) zz !works
write(0,fmt = fmtString)aa !not formatted propperly
end program test
导致这样的事情,因为AA是不初始化:
{ 1.000E+00, -2.000E+00} <- zz works
{ 9.881-324, 9.387-323} <- aa doesn't since it is not displayed as a 3x4 matrix
{ 6.953-310, 0.000E+00}
{ 0.000E+00, 0.000E+00}
{ 1.812-314, 6.953-310}
{ 0.000E+00, 1.019-312}
{ 0.000E+00, 0.000E+00}
{ 4.496-322, 0.000E+00}
{ 0.000E+00, 2.631-312}
{ 0.000E+00, 2.631-312}
{ 0.000E+00, 1.210-316}
{ 1.210-316, 1.210-316}
{ 1.210-316, 3.953-323}
那么我该如何继续?
显示一些代码.. –
...这些值并不重要,因为它应该是一个通用的矩阵输出子程序。所以困扰我的是印刷品的布局。我怎样才能存档,在行和列中排序的值例如像maltab中的输出? –
您只需要为格式添加重复说明符。这里有一个很好的问题可以指出,但目前我找不到。您可能还想要重复计数变量(为此还会有另一个问题)。 – francescalus