我想从Fortran中的程序调用gnuplot脚本。该程序应该执行线性拟合,以获得线性参数并将它们发送回主程序。我知道可以使用命令
从Fortran调用gnuplotcall system ('gnuplot script.gnu')
我不知道的是如何在此调用中向gnuplot发送参数(让我们说一个名为t
的真实变量)并返回主程序的值。拟合参数(两个实数值a
和b
)。
注意:我想避免使用文件在程序之间进行通信:我不希望gnuplot编写一个文件,然后由Fortran程序读取。< / p>
我的线性拟合脚本:
f(x)=a*x+b
fit [t:*] f(x) "data.txt" u 1:2 via a,b;
答案 0 :(得分:1)
您可以使用gnuplot的-e
命令行参数
call system (`gnuplot -e "t=1" script.gnu')
将参数传递给gnuplot。我不知道有什么方法可以返回一个值。
(为了使它真正有用,你必须将数字输入字符串,请参阅 Convert integers to strings to create output filenames at run time以及&#34; Linked&#34;中的许多相关问题关于如何做到这一点的标签。)
在Fortran中进行线性拟合应该非常容易,公式非常简单,并且还有可用的库,并避免所有这些复杂情况。