蛙の井戸見聞記 Pretty frog in a well who knows nothing of the great web ocean!

~~ 好奇心は猫をも殺す Curiosity Kills the Cat ~~ ♪欲しいモノ・食べたいモノ・ネットで集めた情報と日々の記録の倉庫♪ Logging my life... Since 2003.12  

Igor

[igor] Igor のProcedureでWaveを扱う場合、

Variable name_wave1 //使っているWAVEの名前
wave w1 = root:$name_wave //Waveを使う時の変数
Variable name_wave2 //使っているWAVEの名前
wave w2 = root:$name_wave //Waveを使う時の変数
Variable name_wave3 //使っているWAVEの名前
wave w3 = root:$name_wave //Waveを使う時の変数

などとして、Waveの変数を設定。
グラフを描く場合は下記のようにする。

variable nstart, nend
Display $w1 vs $w2 // 縦軸namewave1と横軸namewave2のグラフを描く
Display $w1[nstart,nend] vs $w2[nstart,nend] // 縦軸namewave1と横軸namewave2のグラフの一部を描く

特定のデータのピックアップには

variable p_val
FindLevels /D=w3 w1, p_val // namewave1のうちp_valを持つインデックスをリストアップしてnamewave3に代入
FindLevels /D=w3 /EDGE=1 w1, p_val // namewave1のうちp_valを持つインデックスのうち、w1の単調増加のところでクロスしたものをリストアップしてnamewave3に代入

などとできる。
特殊な関数でフィッティングしたい場合は下記。例は円の式。

Make/D/N=3/O W_coef // /D->倍精度、/N=n n個の要素、/O上書き
W_coef[0] = {0,0,0}//初期値
FuncFit/X=1 circle W_coef $name_wave1[nstart,nend] /X=name_wave2 /D
			
Function circle(FG_ParamWave, x) : FitFunc
	Wave FG_ParamWave
	Variable x
	Variable testa = FG_ParamWave[0]
	Variable testb = FG_ParamWave[1]
	Variable testr = FG_ParamWave[2]
	return sqrt(testr^2-(x-testa)^2)+testb
end