[Up] [Next]

1. IGOR PROの長所と短所

IGOR PRO(略してIGOR)はWavemetrics社から販売されているコンピュータソフトウェアであり、電気生理学実験などで得られた記録の解析などに便利なソフトウェアです。類似のソフトウェアには、EXELやORIGIN、またはMatLab、Mathematica、Maple Vなどが知られていますが、それぞれ長所・短所があります。IGORをうまく使うには、長所・短所を知っておくことが役立ちます。最も似ているソフトウェアはORIGINです。IGORを使うかORIGINを使うかは、好みによるところだろうと思います(著者はORIGINをほとんど使用したことがないのでコメントできない)。

IGORは、基本的には配列(array)を扱うソフトウェアです。配列とは、1次元の数値の集まりです。たとえばパッチクランプで得た電流の波形データなどがこれにあたります。IGORでは配列とは呼ばずに、waveと呼んでいます。


長所


短所


この説明に用いたバージョンはVersion 6.1です。以下の説明は、バージョン4以降であれば、あまり問題ないはずです。

2. IGORを動かしてみる

IGORを起動すると、空のTableと空のCommand Windowが開きます。Command windowの下部にある一行の部分がキーボードで入力することが可能な場所です。ここに命令を書くことが出来ます。

(1) waveを作る

まずwaveを一つ作ってみます。waveの名前を”wx1”とし、waveの大きさ(いくつ数値が入っているか)を100としましょう。

メニューで、Data -> Make Waves...をクリックすると、Make Wave Dialogが開きます。Namesに名前を入れ、Rowsに100を入れます。1次元の配列ですから、Dimensionsは1のまま、またTypeはDouble Float 64 bitのままにしておきます。そうすると、Dialogの下の方に、Make/N=100/D wx1というコマンドがあらわれます。DoItボタンをおすことにより、コマンドの内容が実行されます。

慣れてくると、いちいちマウスでメニューを使用するよりもコマンドをCommand windowに打ち込んだ方が便利だという場合もあります。そのような場合は、
make/N=100 wx1
として、<Enter>キーを押せばこのコマンドが実行されます。

すでに名前が使用されている場合には、注意Dialogが出てきます。上書きを強制的に行うには、Overwriteのオプション(/O)をつけます。すなわち、
make/N=100/O wx1
とします。オプションの順序は(普通)問題ではありません。Typeを明示的にDouble Float 64 bitと指定するには、/Dオプションを使用します。
make/N=100/D/O wx1

このようにして作られたwaveのそれぞれの値は、0です。それを確かめるために、数値を確かめるには、Tableにwave wx1を開けます。たまたまTable0が開いていますから、Table0をクリックしてTable0のウィンドウを最前面に持ってきます。そしてメニューでTable->Append Columns to Tableをクリックして、Dialogを開けます。そしてwx1を選んでDoItボタンをクリック。


(2) waveのx軸の値
waveのx軸の値(Tableでwx1.xのカラム)は、指定がない場合、0, 1, 2, 3, ...です。このx軸スケールを変えることが出来ます。メニューでData -> Change Wave Scalingを選びます。例えば、Startに-3を入れ、Deltaに0.1を入れます。単位をsとしたいなら、Unitsのところにsといれます。そしてDoItボタン。
あるいはコマンド入力で、
SetScale/P x -3, 0.1, "s", wx1
と入力しても同じです。


(3) waveに値を入れる
wave wx1に値を入れてみましょう。すなわち、Command windowに
wx1=5*x+2
と入力し<Enter>キーを押します。Table0はどのようになりましたか?

グラフにあらわすには、メニューからは、Windows -> New Graphsで、またコマンド入力なら,
display wx1
とします。

Tableを見て分かるように、waveの数値はwx1.idというカラムにあります。waveno
x軸の値は、wx1.xに示されています。このようにxは変数として特別な意味を持っています。また変数pも同様、特別な意味を持っています。pは0、1、2、...という数列です。

waveの個々の数値にアクセスするには、2つの方法があります。配列の5番目の値を表すには、wx1[5]というあらわし方をします。それを表示するにはprintというコマンドを使うことができるので、
print wx1[5]
と試してみてください。もう一つの方法は、xがある値の時のwaveの値を示す方法で、wx1(5)という表記をします。括弧の種類が異なることに注意してください。
print wx1(5)
を試してみてください。

(4) waveの四則
waveの四則は、各要素の四則として定義されています。配列の大きさが同じwave wx1とwx2の場合、
wx1 + wx2 (加算)
wx1 - wx2 (減算)
wx1 * wx2 (掛算)
wx1 / wx2 (割算)
は、各配列要素ごとに四則計算を行うことを意味します。割算の分母が0である場合、どのようにigorが対処するかはよくわかりません。エラーを出すか、それとも割算の答えがinfとなるかどちらかであろうと思われます。

四則の場合と同じように、関数の場合も、各配列要素の計算結果を、各配列要素に代入するように定義されています。(参考: Matlabの場合は、異なった定義の仕方を行っています。)このような定義は便利であることが多いのですが、例えばベクトルの内積を計算するには、関数を作る必要があります。


(5) Flow control
igorではCやPascalのようなプログラミング言語と同様に、計算の流れをコントロールすることが出来ます。

 (a) if-endif
    if (condition)
        true part // execute if condition is true
    endif

 (b) if-else-endif
    if (condition)
        true part // execute if condition is true
    else
        false part // execute if condition is false
    endif

 (c) do-while
    do
        body // execute the loop body
    while (condition) // as long as condition is true

 (d) iterate-loop
    iterate(count) // do count iterations
        body // execute the loop body
    loop

(e) for-loop (version 4.0となり使用可能となりました)
for(initialize; continue_test;update)
        body // execute the loop body
    endfor

なおloopから抜け出すためにbreakを使うことも出来ます。

(6) 覚えておくと便利
waveを定義するには、要素の和、x軸のスケールなどなどを決めなくてはなりません。同じwaveを作る場合にはDuplicateを使うと便利です。オプションの/Oは既存のwaveがある場合上書きを行う。
たとえば、
Duplicate/O wx1, wx2
とすることにより、wave wx2が作成されます。これをグラフに加えるには、
AppendToGraph wx2
wx1のグラフとwx2のグラフは重なっていますが、wx2を変えてみると、
wx2=4*x+3
2つのグラフが見えるはずです。


[Up] [Next]