compass gnuplot_fitting{ モード プログラム サイズ設定 600, 300 表示位置 左下 # 記録フォーム表示 右下 } 変数 $exe = "C:\Program Files\gnuplot\bin\wgnuplot.exe" 変数 $input 変数 $ii 変数 $i1 = 1 変数 $i2 = 300 exe フィッティングプログラムを実行{ 計算 $ii = $i1 ファイル書き出し $ii, "current_i.txt" file.消去 "fit.log" file.消去 "fit_result.txt" ステータスバーに表示 "start from " & $ii ■繰り返し fitting_sub, 100, $i2 } sub fitting_sub{ ファイル一部読み込み ($input), "compass.txt", "***gnuplot***", "******" 置換 ($input), "***i1***", $ii 置換 ($input), "***i2***", $i2 ファイル書き出し $input, "temp.plt" 実行待機 $exe, "temp.plt" ファイル読み込み ($ii), "current_i.txt" 置換 ($ii), "(CR)", "" 置換 ($ii), "(LF)", "" 計算 $ii = $ii + 2 ファイル書き出し $ii, "current_i.txt" ステータスバーに表示 "restart from " & $ii ■条件付き呼び出し フィッティングを中断, $ii > $i2 ファイル追加書き出し "error", "fit_result.txt" } sub フィッティングを中断{ file.消去 "temp.plt" file.消去 "current_i.txt" file.消去 "fit.log" 停止 } ***gnuplot*** i1 = ***i1*** i2 = ***i2*** x0 = 16.0 f(x) = aaa0*exp(-(x-x0)/aaa2) set fit quiet FIT_LIMIT = 1e+1 do for [iii=i1:i2]{ aaa0=70.0 aaa2=30.0 j = iii + 1 fit [16.0:70.0] f(x) "data.txt" using 1:j via aaa0,aaa2 if (iii == 1){ set print "fit_result.txt" } else { set print "fit_result.txt" append } if (aaa2 > 0) { print aaa2 } else { print 0 } set print "current_i.txt"; print iii } ******