gnuplotでfittingをする方法は以前まとめた
■ 過去記事 : 【gnuplot】を使ってヒストグラムをRayleigh分布でfittingしてみる
このfittingの出力結果を取り出してさらに別のところで使いたい・・・・
fittingした結果を毎回、手でメモって代入する方法では5000個とかfittingするときに骨が折れるので・・・・
これを参考にしてgnuplotで、
f(x)=a*exp(-(x-b)*(x-b)/2.0/c/c); a=10000; b=0.001; c=1
fit f(x) "hist.txt" u 1:3 via a, b, c
とすると、以下のようなファイルが生成されるはずfit f(x) "hist.txt" u 1:3 via a, b, c
plot [:][0.001:] f(x), "hist.txt" u 1:3
save variables "test.var"
#
#
# G N U P L O T
# Version 5.0 patchlevel 3 last modified 2016-02-21
#
# Copyright (C) 1986-1993, 1998, 2004, 2007-2016
# Thomas Williams, Colin Kelley and many others
#
# gnuplot home: http://www.gnuplot.info
# faq, bugs, etc: type "help FAQ"
# immediate help: type "help" (plot window: hit 'h')
GNUTERM = "qt"
a = 23470.5784871032
b = -0.788993648242623
c = 17.8279442010367
GPFUN_f = "f(x)=a*exp(-(x-b)*(x-b)/2.0/c/c)"
x = 0.0
FIT_CONVERGED = 1
FIT_NDF = 97
FIT_STDFIT = 74.9163111531704
FIT_WSSR = 544408.006649469
FIT_P = 0.0
FIT_NITER = 6
a_err = 20.6412240133938
b_err = 0.0181088448166268
c_err = 0.0181088509499784
# EOF
#
# G N U P L O T
# Version 5.0 patchlevel 3 last modified 2016-02-21
#
# Copyright (C) 1986-1993, 1998, 2004, 2007-2016
# Thomas Williams, Colin Kelley and many others
#
# gnuplot home: http://www.gnuplot.info
# faq, bugs, etc: type "help FAQ"
# immediate help: type "help" (plot window: hit 'h')
GNUTERM = "qt"
a = 23470.5784871032
b = -0.788993648242623
c = 17.8279442010367
GPFUN_f = "f(x)=a*exp(-(x-b)*(x-b)/2.0/c/c)"
x = 0.0
FIT_CONVERGED = 1
FIT_NDF = 97
FIT_STDFIT = 74.9163111531704
FIT_WSSR = 544408.006649469
FIT_P = 0.0
FIT_NITER = 6
a_err = 20.6412240133938
b_err = 0.0181088448166268
c_err = 0.0181088509499784
# EOF
あとはシェルスクリプトの中でこの値を取り出したいときは、
var_a=`grep "^a =" test.var | awk '{print $3}'`
var_b=`grep "^b =" test.var | awk '{print $3}'`
var_c=`grep "^c =" test.var | awk '{print $3}'`
みたいな感じで取り出せるはずvar_b=`grep "^b =" test.var | awk '{print $3}'`
var_c=`grep "^c =" test.var | awk '{print $3}'`
参考までに、
もう一度gnuplotを起動して
load "test.var"
とすると、先ほどの変数たち a, b, cとかfittingのエラーとかがそれぞれの変数に代入されてるはず
ランキング参加中です
↓クリックしていただけると嬉しいです〜