![]() |
| サイトマップ | |
|
Igor Pro では、描くグラフのタイプによって、必要なウェーブの次元/形式が異なります。
Table グラフタイプと必要なウェーブの次元/形式
グラフタイプ | 必要なウェーブの次元/形式 |
---|---|
XYプロット | 1次元ウェーブ 2次元以上のウェーブの 1次元ウェーブ相当の要素 |
等高線プロット | 1次元ウェーブ×3 XYZマトリクス (n×3 の 2次元ウェーブ) Z値マトリクス (m×n の 2次元ウェーブ) |
イメージプロット | 2次元ウェーブ 3次元ウェーブ |
Gizmo Path | 2次元ウェーブ (n×3 の 2次元ウェーブ) |
Gizmo Surface | 2次元ウェーブ |
Gizmo Voxelgram | 3次元ウェーブ |
一方、テキストファイルから読み込んだデータは1次元のウェーブであることが多いため、グラフを描くためには、1次元ウェーブを適宜連結することで、必要な次元のウェーブに変換する操作が必要です。Igor Pro には、以前から Concatenate操作関数が用意されており、複数のウェーブを任意の次元に統合することは可能でしたが、UI の用意はありませんでした。
Igor Pro 7 には、Concatenate操作関数に対応するメニューコマンド (データメニュー>ウェーブを連結) が搭載されました。
![]() |
例えば、次のような100ポイントのウェーブ9個を用意します。
make/o/n=100 wave1=sin(x/5) make/o/n=100 wave2=sin(x/10) make/o/n=100 wave3=sin(x/15) make/o/n=100 wave4=sin(x/20) make/o/n=100 wave5=sin(x/25) make/o/n=100 wave6=sin(x/30) make/o/n=100 wave7=sin(x/35) make/o/n=100 wave8=sin(x/40) make/o/n=100 wave9=sin(x/45)
これを2次元のウェーブ (マトリクス) wave2D に連結するには、Concatenate操作関数を使って、
Concatenate/DL/NP=1 {wave1,wave2,wave3,wave4,wave5,wave6,wave7,wave8,wave9},wave2D
というコマンドを実行します。連結するウェーブが増えると、連結するウェーブをコンマ区切りで列挙するのがなかなか大変ですが、データメニューの「ウェーブを連結」コマンドを使うと簡単に実行できます。
![]() |
なお、Concatenate 操作関数でも出力ウェーブを上書きする /O フラグは利用できますが、「ウェーブを連結」ダイアログからは指定できません。
上記の操作で作成した2次元ウェーブをイメージプロットに表示すると次のようなプロットが得られます。9本の1次元ウェーブがまとめられていることが確認できます。
![]() |
一方、連結してしたウェーブを低次元に分割するには SplitWave操作関数を使います。これはバージョン7 で追加された操作関数です。次元を指定して、指定したデータフォルダに、指定した Prefix で始まるウェーブに分割できます。例えば、
SplitWave/N=out wave2D
と実行すると、2次元ウェーブ wave2D を1次元下の1次元ウェーブで out から始まるウェーブ (out1、out2、out3, …) に分割することができます。
明示的に1次元ウェーブと指定する場合は、
SplitWave/SDIM=1/N=out wave2D
と /SDIM フラグを指定します。
データメニューの「ウェーブを分割」コマンドを利用すると、次のようなダイアログを使って指定することができます。
![]() |
SplitWave 操作関数は RGBカラーの画像データ (3次元ウェーブ) から、任意の成分 (R,G,B) のレイヤーだけの2次元ウェーブを抽出する用途にも利用できますし、CT の画像データのように多層の画像データをレイヤーごとに分解することもできますね。