Используйте встроенные функции РЕАЛЬНЫЕ и 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'), мы принимаем абсолютное значение мнимой части. Отредактируйте дескриптор формата соответственно, чтобы программа, которую вы используете для чтения выходного файла, сможет ее прочитать.
HI УМС-бот, ниже выходной файл и как вы видите его не в порядке: 5,4585 + я -7,2662 -7,6987 + 6,7328 6,4439 я + я 4,7736 4,4043 + я -7,7265 – bill
Я Editted мой ответ, чтобы заботиться правильного форматирования. – milancurcic
Я бы хотел, чтобы это было читаемо для Matalb, т. Е. Что Matlab поймет, что это комплексная матрица nXn – bill