マクロの組み方Part12(Cursorを用いる その2)
前回の記事 マクロの組み方Part11(Cursorを用いる その1) - Igorの解説とか で出てきた、hcsrとxcsrの違いについて解説します。
まずは
Make/O For_check_x,For_check_y,For_check_2
For_check_x=x+1
For_check_y=x
For_check_2=x
Setscale/p x,1,1,For_check_2
Display For_check_y
Display For_check_y vs For_check_x
Display For_check_2
For_check_x=x+1
For_check_y=x
For_check_2=x
Setscale/p x,1,1,For_check_2
Display For_check_y
Display For_check_y vs For_check_x
Display For_check_2
としてみましょう。
便宜上
Display For_check_y で表示したグラフをA
Display For_check_y vs For_check_x で表示したグラフをB
Display For_check_2 で表示したグラフをC
とします。
そして、例えば0Point目にカーソルを合わせ
Print hcsr(A)
Print xcsr(A)
Print xcsr(A)
と実行し、差を見てみましょう。
Aでは、両方とも0と表示されます。
Bでは、hcsrで1、xcsrでは0
Cでは、両方とも1と表示されます。
これらからわかるように(?)、hcsrでは、グラフ上のカーソルにおけるxの値。
xcsrは、カーソルが置かれたトレースに記憶されている、xの値。
という差があります。
For_check_2では、SetScaleコマンドを使ってxの値を記憶させたため、xcsrでも1が出力されます。
マクロの組み方Part11(Cursorを用いる その1)
まずはWaveを作成しましょう。
Make/O Ref_x,Ref_y,Target
Ref_x=2*x-13
Ref_y=x
Target=x
Display Ref_y vs Ref_x
Ref_x=2*x-13
Ref_y=x
Target=x
Display Ref_y vs Ref_x
このときの横軸の情報を、Targetに付け加えましょう。
カーソルを使う その1
Macro CursorMacro()
String Refx_str="Ref_x"
String Refy_str="Ref_y"
String Target_str="Target"
Display $Refy_str vs $Refx_str
//ここまで準備
Variable Ref_0,Ref_1 //Ref_0が0Point目におけるxの値
Cursor A $Refy_str 0 //0ポイント目にCursorAを置く
Ref_0=hcsr(A) //Ref_0にCursorAのxの値を代入
Cursor A $Refy_str 1 //1ポイント目にCursorAを置く
Ref_1=hcsr(A) //Ref_1にCursorAのxの値を代入
Setscale/p x,Ref_0,Ref_1-Ref_0,$Target_str //Tartgetのx軸情報を入力
End
String Refx_str="Ref_x"
String Refy_str="Ref_y"
String Target_str="Target"
Display $Refy_str vs $Refx_str
//ここまで準備
Variable Ref_0,Ref_1 //Ref_0が0Point目におけるxの値
Cursor A $Refy_str 0 //0ポイント目にCursorAを置く
Ref_0=hcsr(A) //Ref_0にCursorAのxの値を代入
Cursor A $Refy_str 1 //1ポイント目にCursorAを置く
Ref_1=hcsr(A) //Ref_1にCursorAのxの値を代入
Setscale/p x,Ref_0,Ref_1-Ref_0,$Target_str //Tartgetのx軸情報を入力
End
Cursor カーソルの種類 トレースの名前 何ポイント目にカーソルを置くか
hcsr(A)・・・カーソルAにおけるxの値
xcsr(A)・・・カーソルAにおけるxの値
(これらの違いについては次記事マクロの組み方Part12(Cursorを用いる2) - Igorの解説とかで)
pcsr(A)・・・カーソルAにおけるxのポイント数
vcsr(A)・・・カーソルAにおけるyの値
qcsr(A)・・・カーソルAにおけるyの値
zcsr(A)・・・等高線プロットやイメージプロットの時のカーソルAにおけるzの値
xcsr(A)・・・カーソルAにおけるxの値
(これらの違いについては次記事マクロの組み方Part12(Cursorを用いる2) - Igorの解説とかで)
pcsr(A)・・・カーソルAにおけるxのポイント数
vcsr(A)・・・カーソルAにおけるyの値
qcsr(A)・・・カーソルAにおけるyの値
zcsr(A)・・・等高線プロットやイメージプロットの時のカーソルAにおけるzの値
Setscale/p 軸(x or y),0Point目の値,Pointの間隔,Wave名
Setscale 軸(x or y),0Point目の値,最終Pointの値,Wave名
Setscale 軸(x or y),0Point目の値,最終Pointの値,Wave名