如何将MATLAB变量写入格式为3.4d3的文本文件

时间:2018-11-14 16:30:27

标签: matlab fortran

我想通过Fortran代码读取MATLAB输出。 因此,我需要编写MATLAB脚本来生成带有十进制表示法的文本文件。 像:MATLAB代码

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

输出:

123.45

如何编写输出命令或设置格式,以便我在filetxt中获得此值,如:

1.2345d02 

我最多可以获得1.2345e02,但我想写成1.2345d02

1 个答案:

答案 0 :(得分:4)

如@francescalus所建议,我认为您的Fortran编译器可能会像预期的那样将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

结果(gfortran test.f90):

xs =       0.123456790528000000E+12
xd =       0.123456789012345596E+12  <-- double-precision accuracy