文字列と変数、ウェーブの扱いについて (variable, string)
IGOR Pro は、Wavemetrics 社が開発・販売しているグラフ作成ソフトだ。クレジットカードを持っていれば、日本人でも手に入れることができる。インターネットダウンロードなら、CDROMの料金に加えて、国外発送の料金もかからないため安く手に入れられる。(学生さんなら1万円以下で購入可能だ)この記事を書いている段階でのバージョンは5で、毎回着実に有意義なバージョンアップを重ねている。このソフトはグラフ作成ソフトと言ってしまったが、実はそんな単純なものではなく、様々なデータ解析やプログラムも作成でき、理工系の科学者・学生にとって必携のソフトと言える。今ではMac版とWin版の両方があり、しかもライセンスはハイブリッドでお得だ。
とにかくスピードを要求される計算では、C言語などで記述したプログラムを独自にビルドした方がよいが、一般的な理工系の解析ではIGOR を使った方がよい事が多い。我々の研究グループにおいて、IGOR上で独自のソフトウェアを作成する理由は、解析処理のあとに自由にグラフを作ったり、さらなる解析を行ったりできるからだ。データ解析をはじめてから論文用の図を出力するまで、すべてに関してIGORは役に立つ。しかしながら、(1) 英語版だから敷居が高い、(2) プログラムを作ったことがない、(3) 多機能である上に操作が複雑など、なかなかすんなりとIGORの世界に入れない事もあろう。そこで本講座では、そのような学生さん向けに少しずつIGORの使い方とテクニック、さらにはプログラムの作成方法などについて、毎回ちょっとしたテーマを出しながら解説していくつもりだ。
時間のある間に原稿を書いてストックしているため、時間があればこのHPに順次アップしていく。最近は本当に忙しくなってしまってなかなか落ち着いた時間がとれないが、少しでも皆さんの役に立てばという事で可能な限り技術を公開するので参考にしていただけたら幸いである。身動きが取れないほど忙しくなる事もあるので、そのときは更新をストップする事があるが、その際はご容赦いただきたい。
■ではさっそく、IGOR Proの解析に入っていこう。
IGORを立ち上げると、下の方にヒストリー表示部とコマンドラインが現れる。前者は、直前までにユーザーが行った履歴の表示で、後者は直接IGORに対して命令を後れるユーザー入力欄である。
ためしに、最下行のコマンドラインで、
print “test”
と打ち込んでみよう。
print “test”と打ち込んだ命令がヒストリーに記録されると共に、続いて test と文字が表示されるはずだ。
一般的に、文字列は二つの”(ダブルクオーテーション)で囲むのがルールとなっている。
次に
string/G a = “message”; print a
(/Gの意味は後日説明する)
と打ち込んでリターンキーを押してみよう。
今度は、上記の命令がヒストリに書き込まれた後、messageと表示されたはずだ。
ここで、二つの命令を1行に書き続ける場合、セミコロン ; で区切るのがルールだ。
かわりに、
string/G a = “message”
(改行)
print a
(改行)
でも同じだ。
■さて、stringはお分かりの通り、a が文字列である事を宣言する命令だ。
string/G a
a=”message”
でも同じ事だ。
ここで a は文字列だから、以後
a = “abc”
とできても、a = 10 とは指示できない。
■次に変数を宣言してみよう
variable/G b=200; print b
これで200と表示されるはずだ。
print b/5
とすると、200/5の結果、40が表示されるはずだ。
文字列がstringであるのに対し、変数はvariableだ。
■Igorでよく言うWaveとは何だろうか。
stringやvariableでは、一種類の文字列や変数であった。
データがたくさん入っている場合にはどうしたらいいのだろうか。
Make/O/N=5 c={1,3,5,7,9}
と打ち込んでリターンを押してみよう。(/Oの意味は後日説明する)
これが配列を宣言するための命令だ。
makeは、Igorで配列を宣言するための命令で、/Nは、配列数を意味する。
ここでは c という配列を作り、そこに、1, 3, 5, 7, 9のデータを入力した。
Igor Pro ver 5では、
print c
のようにデータの中身を表示させることができる。
残念ながらver 4以前のIgorでは、string や variableをprintする事はできてもwaveを直接printする事はできない。
その場合、edit c (もしくは、New Tableをメニューから選ぶ)とする事。
■ちなみに文字列のウエーブは、
Make/O/T/N=3 d={“a1”, “b2”, “c3”}
とする。
ここで、/Tはウエーブが文字列である事を意味する。variable に対してstringが存在したが、waveでは文字列専用の命令が存在しない。
★以上、まとめとして
ひとつの変数:variable
ひとつの文字列:string
変数配列:wave/N=データ数
文字列配列:wave/T/N= データ数
を用いる事