我在here找到了一段非常有用的代码,用于循环拟合多个数据集,其中 y 值位于一个文件的单独列中。每个参数都打印在图表上。现在,我想知道如何扩展代码,以便所有参数都列在另一个 .txt 文件中。
我尝试使用 set print 'parameters.dat' 和 print a,b,c 函数,但这导致只有最后一次拟合的参数。但我希望将每个拟合的参数都包含在一个文件中。 我在 Windows 10 上使用 Gnuplot 5.4。
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