xyz データを z マトリクスへ変換する方法
Q. 1次元のウェーブ 3つ(XYZ データ)を Z マトリクスに変換することはできますか?
A. WaveMetrics Procedures フォルダ(※1)に収録されている XYZtoMatrix プロシージャを使うと変換できます。
XYZtoMatrix は、次の 3つのデータフォーマットに関する様々なフォーマット変換マクロを提供するプロシージャです。
- XYZ データ 1次元のウェーブが 3つ(1列n行×3)
- XYZ トリプレット 2次元のウェーブ(3列n行)
- Z マトリクス 2次元のウェーブ、等間隔の格子点上のデータ(m列n行)
バージョン 6.2 以降
- データメニュー>Packages>XYZ to Matrix を選択しマクロをロードします。(4 に進む)

バージョン 6.1 以前
- ウィンドウメニュー>プロシージャウィンドウ>プロシージャウィンドウを選択し「プロシージャウィンドウ」を開きます。
- ウィンドウ冒頭の #Pragma~ の次の行に、下記を追加します。
#include <XYZtoMatrix>

- プロシージャウィンドウ下部の「コンパイル」ボタンをクリックして、プロシージャウィンドウを閉じます。ここまでの操作で、マクロメニューに次の 7つのマクロ(※2)が追加されます。
マクロ名 |
変換前のデータ |
変換後のデータ |
XとYの分割数指定 |
XとYの範囲指定 |
XYZtoMatrix |
XYZ データ |
Z マトリクス |
要 |
不可能 |
XYZtoMatrixRange |
XYZ データ |
Z マトリクス |
要 |
可能 |
XYZTripletToMatrix |
XYZ トリプレット |
Z マトリクス |
要 |
可能 |
XYGridandZtoMatrix |
XYZ データ |
Z マトリクス |
不要 |
不可能 |
XYZToXYZTriplet |
XYZ データ |
XYZ トリプレット |
要 |
可能 |
XYZSubsetToXYZTriplet |
XYZ データ |
XYZ トリプレット |
不要 |
可能 |
XYZTripletToXYZ |
XYZ トリプレット |
XYZ データ |
不要 |
不可能 |
ここでは、例として、wX、wY、wZ の 3つの 1次元ウェーブ(XYZ データ)を、Z マトリクスに変換するケースを考えます。
- マクロメニュー>XYZtoMatrix (一番上) を選択します。次のようなウィンドウが表示されます。

- XYZtoMatrix ウィンドウで「X Wave」、「Y Wave」、「Z Wave」をリストから、それぞれ「wX」、「wY」、「wZ」を指定します。
- 「Output matrix name」には、既存のデータと重複しない任意の名称を Z マトリクスの名称として指定することができます。ここでは "matrix" と入力します。
※入力する名称は "" (ダブルクォーテーション) で囲む必要があることにご注意ください。
- 「Put matrix in new table?」を Yes にするとデータ変換と同時に変換後のデータがテーブルに表示されます。不要の場合は No を選んでください。
- 「Display matrix as image?」を Yes にするとデータ変換と同時にイメージプロットが既定の設定で作成されます。不要の場合は No を選んでください。
- 「number of rows (X) for matrix」と「number of columns (Y) for matrix」の 2つのテキストボックスには、変換後の Z マトリクスの分割サイズを指定します。大きくすると細かく分割され(補間され)ます。ここではそれぞれ 50 を入力します。
(注:データサイズの大きさや分割数によっては、変換に非常に時間を要する場合もありますのでご注意ください。)

- 全ての指定が済んだら「続行」ボタンをクリックします。
変換前の XYZ データ
 |
|
→ |
変換後の Z マトリクス
 |
|
☆上記の操作ファイル(XYZtoMatrix.pxp/IGOR Pro 6.06J で作成)のダウンロードはこちら。
※1 :WaveMetrics Procedures フォルダは、開発元が製品に同梱しているプロシージャ群が納められたフォルダで、IGOR Pro をインストールしたフォルダにあります。ここで使用したデータフォーマットの変換機能だけでなく、さまざまな機能が提供されています。
※2 :IGOR Pro バージョン 6 では、7 つのマクロが追加されますが、バージョン 5 では追加されるマクロは、XYGridandZtoMatrix と XYZSubsetToXYZTriplet を除いた 5つです。