Igorの解説とか

このブログはWavemetrics社が開発および販売しているIgorについて解説するブログです。

Function作成 Part1(Functoinの実行とMenu)

Functionを作成するためには、Macroのときと同様(マクロの組み方Part1(プロシージャ、文字サイズ、プロシージャ設定) - Igorの解説とか)にプロシージャから作成します。

 

 

 

Function その1
Function example_function()
Print "This is a function."
End

 

これを実行しようとしても、マクロのタブにはexample_functionというものはありません。

実行するためにはコマンドライン

example_function()

を実行すれば出来ますが、マクロタブに表示することも出来ます。

 

Menu
Menu "Macros"
"Example function",example_function()
End

 

と書き加える必要があります。

 

" "の中身は自由に変更して良いです。

しかし , の後のexample_function()は作成した関数にしてください。

 

また"Macros"を他の言葉、例えば"My function"に変更すると、My functionというタブが新しく作成されます。

このように、新しくタブを作成して、関数実行を簡単に行うことも出来ます。

なお、作成したマクロであっても、同様に新しいタブの中に入れることが出来ます。

 

目次 サイトマップ - Igorの解説とか

前  ーーーーー

次  Function作成 Part2(FunctionにおけるPrompt、V_flag) - Igorの解説とか

 

マクロとユーザー定義関数part1(大まかな違い)

題名を見ただけれはわからないかもしれませんが、

MacroFunction の違いです。

 

 

 

まずIgorのマニュアルでは以下のように書かれています。

Igorが初めて開発されたときから、マクロによる自動実行がサポートされていました。マクロという概念によって、ユーザはコマンドを組み合わせて呼び出し可能なルーチンを作成できました。(中略)

WaveMetrics社はまもなく、あらゆる範囲のプログラミングをサポートする、より高速で強力な技術の必要性を認識し、これがユーザ定義関数の追加につながりました。関数はコンパイルして使用するため、マクロよりも数段速く実行されます。(中略)

ほとんど大部分のプログラミングでは関数を使用するべきです。(中略)

マクロの構文と動作は関数のものと似ていますが、その違いは初めてIgorのプログラミングを習う人々にとっては混乱の元となる可能性があります。プログラミングの初心者の場合、マクロについてもっと知る必要が生じるまで、 この章の残り(マクロの章)を読むのは延期して支障はありません。

 

はい、ここまで散々解説してきたマクロですが、マクロじゃなくユーザー関数、つまりMacroではなくFunctionを使うほうがおすすめされています。

 

僕自身も、これには同意できる部分があります。

しかし同意できない部分もあります。

 

Functionを使って自動化した方が、Macroを使って自動化するよりも明らかに高速で処理してくれます。

個人的な例ですが、Macroで10分かかっていたものが、Functionでは40秒でできました。

大量のデータを処理するならば、Functionで自動化する方が良いでしょう。

 

さらにユーザー定義関数を使って、しっかりと、正しい形でプログラミングをする方が、長期的に見ると無駄なエラーが減ったり、使えるコマンドも多いので、自由度が高いです。

 

しかし、簡単にプログラミングしたいのであれば、Macroが楽で、手っ取り早いですし、直感的だと思います。

 

ですので、初めはMacroで、慣れてきたらFunctionで、という風に進んでいくと良いと思います。

 

目次 サイトマップ - Igorの解説とか

前 ーーーー

次