我想通过Fortran代码读取MATLAB输出。 因此,我需要编写MATLAB脚本来生成带有十进制表示法的文本文件。 像:MATLAB代码
x=123.45
fprintf(filetxt,'%f',x)
输出:
123.45
如何编写输出命令或设置格式,以便我在filetxt中获得此值,如:
1.2345d02
我最多可以获得1.2345e02,但我想写成1.2345d02
答案 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