データ解析のためのIgorPro活用術

複数のwaveをまとめて演算させる

このIgorPro (for Windows) のProcedureは複数の waveをまとめて演算するものです。たとえば、発光の測定を行ったところ、 光を入れていないときのノイズが信号にある値でのっていたりするとします。 このような場合はそれぞれのwaveから ある値を引いたり、あるいはwaveを引いたりする必要があります。

Programの内容

使用方法

  1. 関連するwaveをグラフに出力させ、active window にする。
  2. プログラムをProcedure WIndowに貼り付け、演算を修正する。
  3. マクロを実行する。

カスタマイズ、その他

  1. ここでKeyとなるコマンドはWaveName(windowNameStr, index, type)です。 これはGraphもしくはTableの中で用いられているwaveの名前を返す関数です。ここで windowNameStr は指定したグラフもしくはTable(空欄ならactiveであるWindowのグラフ)の 名前の文字列、indexは何番目のwaveか、typeは1ならy軸、2ならx軸、3ならx,yのどちらか という指標です。したがってこのマクロで用いられているWaveName("",Num, 1)はTopのグラフのy軸として 用いられているNum番目のwaveの名前の文字列を返すという設定になっています。
  2. それぞれの演算を行うたびにマクロの中の関数を書き換えてください。
ここからProcedureです。
/////////////////////////////////////////////////
// This procedure is for systematical operation on
// all waves on displayed graph windows.
//    created by M. Nagai on May, 1996,
//    modified on Jan. 13, 2003 
/////////////////////////////////////////////////

macro hikizan(dark)
  String dark=""
  String hikizan
  Variable Num=0, gotwave
  Silent 1
  PauseUpDate

  if(cmpstr(dark, "")!=0)
  do
    hikizan= WaveName("",Num,1)
    gotwave=cmpstr(hikizan, "")
    if(gotwave!=0)
      $hikizan-= $dark   // change operation  
    endif
    Num+=1
  while (gotwave)
  endif
endmacro



macro kakezan(vvv)
  Variable/D vvv
  String waven
  Variable Num=0, gotwave
  Silent 1
  PauseUpDate

  do
    waven= WaveName("",Num,1)
    gotwave=cmpstr(hikizan, "")
    if(gotwave!=0)
      $waven= vvv*$waven   // change operation  
    endif
    Num+=1
  while (gotwave)
endmacro


ここまで
最終更新日: 2004.4.1
一つ上の項目に戻る