如何使用 Gnuplot 打印“do for”循环中的参数?

问题描述 投票:0回答:1

我在here找到了一段非常有用的代码,用于循环拟合多个数据集,其中 y 值位于一个文件的单独列中。每个参数都打印在图表上。现在,我想知道如何扩展代码,以便所有参数都列在另一个 .txt 文件中。

我尝试使用 set print 'parameters.dat' 和 print a,b,c 函数,但这导致只有最后一次拟合的参数。但我希望将每个拟合的参数都包含在一个文件中。 我在 Windows 10 上使用 Gnuplot 5.4。

gnuplot
1个回答
0
投票

gnuplot 将文本打印到文件的一种方法是:(检查

help set print

set print FILE                     # open file
    print sprintf("%g %g", x, y)   # or whatever...
set print                          # close file

因此,如果要将每次迭代的拟合结果打印到不同的文件中,可以将以下内容添加到循环中:

do for [i=1:3] {
    # do the fitting or whatever

    set print sprintf("FitResults%02d.txt",i)
        print sprintf("a = %g", a)
        print sprintf("b = %g", b)
        print sprintf("c = %g", c)
    set print   # close file
}

或全部在同一个文件中:

set print sprintf("FitResults.txt")
    do for [i=1:3] {
        # do the fitting or whatever

        print sprintf("Fit number: %d",i)
        print sprintf("a = %g", a)
        print sprintf("b = %g", b)
        print sprintf("c = %g", c)
        print ""    # empty line as separator
    }
set print   # close file
© www.soinside.com 2019 - 2024. All rights reserved.