忍者ブログ
日々の研究生活のメモ書きなど
gnuplotでfittingをする方法は以前まとめた

■ 過去記事 : 【gnuplot】を使ってヒストグラムをRayleigh分布でfittingしてみる




このfittingの出力結果を取り出してさらに別のところで使いたい・・・・
fittingした結果を毎回、手でメモって代入する方法では5000個とかfittingするときに骨が折れるので・・・・

■ 参考 : 変数や関数のファイルへの書き出し(save)

これを参考にして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

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



あとはシェルスクリプトの中でこの値を取り出したいときは、
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}'`
みたいな感じで取り出せるはず




参考までに、
もう一度gnuplotを起動して
load "test.var"
とすると、
先ほどの変数たち a, b, cとかfittingのエラーとかがそれぞれの変数に代入されてるはず








PR
この記事にコメントする
Name
Title
Color
E-Mail
URL
Comment
Password   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
プロフィール
HN:coffee
職業:物理屋(自称)
趣味:映画鑑賞
自己紹介:
#include <stdio.h>
#include "MyProfile.h"

#define TWITTER coffee_pote

#define WISH_LIST
amazonのほしい物リスト
#ifdef RICH_FLAG
// ↑いつも支援いただきありがとうございます m(_ _)m
#endif


int main(void){

printf("\n");
printf("D論・・・? あぁそんな子もいましたね(執筆中)\n");
printf("\n");
printf("猿でもわかるgnuplot を執筆中(こっちの執筆は半年以上何も進んでいない・・・・)\n");
/* 最終更新 2017/07/19 */
return 0;

}
カウンター
ブログ内検索
ツイートするボタン
Flickr

Template "simple02" by Emile*Emilie
忍者ブログ [PR]