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