首页 > 解决方案 > 如何将 MATLAB 变量写入格式为 3.4d3 的文本文件

问题描述

我想通过 Fortran 代码读取 MATLAB 输出。因此,我需要编写 MATLAB 脚本来生成一个带十进制符号的文本文件。喜欢:MATLAB代码

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

输出:

123.45

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

1.2345d02 

我能得到的最大值是 1.2345e02 但我想写成 1.2345d02

标签: matlabfortran

解决方案


正如@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

测试数据:

0.1234567890123456e12
0.1234567890123456e12

结果(gfortran test.f90):

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

推荐阅读