我经常使用Octave来创建可以从我的实验室结果中绘制的数据。然后,该数据在gnuplot中配备了一些函数:
f1(x) = a * exp(-x*g);
fit f1(x) "c_1.dat" using 1:2:3 via a,g
这会创建一个fit.log
:
*******************************************************************************
Tue May 8 19:13:39 2012
FIT: data read from "e_schwach.dat" using 1:2:3
format = x:z:s
#datapoints = 16
function used for fitting: schwach(x)
fitted parameters initialized with current variable values
Iteration 0
WSSR : 12198.7 delta(WSSR)/WSSR : 0
delta(WSSR) : 0 limit for stopping : 1e-05
lambda : 14.2423
initial set of free parameter values
mu2 = 1
omega2 = 1
Q2 = 1
After 70 iterations the fit converged.
final sum of squares of residuals : 46.0269
rel. change during last iteration : -2.66463e-06
degrees of freedom (FIT_NDF) : 13
rms of residuals (FIT_STDFIT) = sqrt(WSSR/ndf) : 1.88163
variance of residuals (reduced chisquare) = WSSR/ndf : 3.54053
Final set of parameters Asymptotic Standard Error
======================= ==========================
mu2 = 0.120774 +/- 0.003851 (3.188%)
omega2 = 0.531482 +/- 0.0006112 (0.115%)
Q2 = 17.6593 +/- 0.7416 (4.199%)
correlation matrix of the fit parameters:
mu2 omega2 Q2
mu2 1.000
omega2 -0.139 1.000
Q2 -0.915 0.117 1.000
有没有办法让参数及其错误重新进入Octave?我的意思是我可以编写一个解析它的Python程序,但我希望避免这种情况。
这个问题不再适用于我,因为我现在使用Python和matplotlib进行实验室工作,它可以通过单个程序完成所有这些工作。我保留这个问题以防其他人遇到同样的问题。
答案 0 :(得分:3)
我对gnuplot-Octave接口知之甚少,但是你可以做些什么可以让你的(解析)生活更轻松:
set fit errorvariables
fit a*x+g via a,g
set print "fit_parameters.txt"
print a,a_err
print g,g_err
set print
现在您的变量及其各自的错误位于“fit_parameters.txt”文件中 python不需要解析。
来自fit
的文档:
如果使用此选项构建gnuplot,并使用
set fit errorvariables
激活它,则每个拟合参数的错误将为 存储在名为参数的变量中,但_err
追加。因此,错误可以用作进一步的输入 计算