Как записать переменную MATLAB в текстовый файл с форматом вроде 3.4d3 - PullRequest
0 голосов
/ 14 ноября 2018

Я хочу прочитать вывод MATLAB по коду Фортрана.Поэтому мне нужно написать скрипт MATLAB для генерации текстового файла с десятичной нотацией.например: MATLAB код

x=123.45
 fprintf(filetxt,'%f',x)

Вывод:

123.45

Как написать команду вывода или задать формат, чтобы я получил это значение в filetxt, например:

1.2345d02 

Максимум, что я могу получить, это 1.2345e02, но я хочу написать как 1.2345d02

1 Ответ

0 голосов
/ 14 ноября 2018

Как предполагает @francescalus, я думаю, что ваш компилятор Фортрана, вероятно, будет читать литерал с плавающей точкой, такой как 1.2345e02, как и ожидалось, в переменную двойной точности (как в коде ниже).Итак, я думаю, вы можете просто написать 1.2345e02 вместо 1.2345d02 в файл данных ...

program main
    implicit none
    real :: xs
    double precision :: xd

    open(10, file='test.dat', status='old')
    read(10,*) xs
    read(10,*) xd
    close(10)

    print "(a, e30.18)", "xs = ", xs
    print "(a, e30.18)", "xd = ", xd
end

test.dat:

0.1234567890123456e12
0.1234567890123456e12

Result (тест gfortran.f90):

xs =       0.123456790528000000E+12
xd =       0.123456789012345596E+12  <-- double-precision accuracy
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...