行列:ワークシートに変換
ワークシートに行列データを変換
必要なOriginのバージョン:Origin8.0 SR0以降、Origin8.5.1 で更新
1. m2w;
2. m2w im:=[MBook1]MSheet1!Mat(1) ow:=[Book1]Sheet1!;
3. m2w method:=direct xy:=xcol ycol:=1 xlabel:=row1;
4. m2w method:=xyz option:=yconst;
5. m2w method:=xyz trim:=1;
6. m2w -r 1 ims:=[MBook1]MSheet2! method:=xyz multi:=all;
スクリプトからXファンクションにアクセスする場合、追加のオプションスイッチについてのページを参照してください。
表示 名 |
変数 名 |
I/O と データ型 |
デフォルト 値 |
説明 |
---|---|---|---|---|
入力行列 | im |
入力 MatrixObject |
|
ソース行列オブジェクトを指定します。 |
入力行列 | ims |
入力 MatrixLayer |
|
ソース行列シートを指定します。行列シート内の全オブジェクトを変換する場合、imの代わりにimsを使用する必要があります。
|
手法 | method |
入力 int |
|
変換法を指定します。
|
データフォーマット | xy |
入力 int |
|
これは、手法で形状のままが選択されている場合のみ利用できます。データを出力するワークシートでのデータ配置を指定します。
|
最初の列のY値 | ycol |
入力 int |
|
これは、データフォーマットで列方向のXが選択されている場合のみ利用できます。出力ワークシートの最初の列に行列のY値を出力するかを指定します。 |
最初の列のX値 | xcol |
入力 int |
|
これは、データフォーマットで列方向のYが選択されている場合のみ利用できます。出力ワークシートの最初の列に行列のX値を出力するかを指定します。 |
X値の位置 | xlabel |
入力 int |
|
これは、データフォーマットで列方向のXが選択されている場合のみ利用できます。行列のX値を出力するかを指定し、出力する場合は、保存位置を指定します。
|
Y値の位置 | ylabel |
入力 int |
|
これは、データフォーマットで列方向のYが選択されている場合のみ利用できます。行列のY値を出力するかを指定し、出力する場合は、保存位置を指定します。
|
システムパラメータ | sysparam |
入力 int |
|
X値またはY値でシステムパラメータが選択されている場合にのみ使用できます。行列のX/Y値を保存するためのシステムパラメータラベル行を指定します。
|
ユーザ定義パラメータ | userdef |
入力 string |
|
X値またはY値でユーザ定義パラメータが選択されている場合にのみ使用できます。行列のX/Y値を保存するためのユーザ定義パラメータラベル行を指定します。 |
変換 | multi |
入力 int |
|
行列シート内に複数の行列オブジェクトがある場合、単一オブジェクトのみ変換するか全て変換するか指定できます。
オプションリスト:
Note: この2つのオプションは、入力変数が異なります。 |
オプション | option |
入力 int |
|
これは、手法でXYZ列が選択されている場合のみ利用できます。ワークシートの値をどのようにソートするか指定します。
|
欠損値の削除 | trim |
入力 int |
|
このチェックボックスは、手法がXYZ列の場合にのみ利用できます。チェックを付けると、行列内の欠損値がスキップされ、ワークシート上では含めません。チェックを外すと、欠損値も結果ワークシートに表示されます。 |
出力ワークシート | ow |
出力 Worksheet |
|
出力ワークシートを指定します。 このシンタックスを参照してください。 |
行列には1つのZ値のデータセットが表示されます。これには次のような特徴があります。
デフォルトでは、行ヘッダには列および行番号が表示されます(左図)。右図のようにXおよびYの値を表示するには、メニューから表示:X/Yを表示を選択します。
行列をワークシートに変換するには、2つの方法があります。: 1つは直接変換で、もう1つはXYZ列を持つワークシートを作成する方法です。
直接変換:
1.XとYなし
行列のセル値のみを変換します。
2.列方向のX
行列値がXマッピング値によってワークシート列に並び替え:同じX値に対応する行列値が同じ列に配置され、異なるX値に対応する2つの行列値は異なる列に配置されます。
この方法では、行列のXY値をワークシートの1列目および1行目に出力するか、またはワークシートラベルに出力するどうかを指定できます。次のサンプルは、直接変換を使用し、目的のワークシートの最初の行にX値を加え、最初の列にY値を加えます。
3.列方向のY:
行列値がYマッピング値によってワークシート列に並び替え:同じY値に対応する行列値が同じ列に配置され、異なるY値に対応する2つの行列値は異なる列に配置されます。
この方法では、行列のXY値をワークシートの1列目および1行目に出力するか、またはワークシートラベルに出力するどうかを指定できます。次のサンプルは、直接変換を使用し、目的のワークシートのパラメータ 1行にY値を加え、最初の列にX値を加えます。
XYZ列のワークシートを作成:
この手法ではX、Y、Z 列のあるワークシートを作成します。行列のセルの値はワークシート内のZデータに変換されます。ワークシートの対応するXY列の値は行列のXとYのマッピング情報によって設定されます。そして、オプション変数を使って変換したワークシートを並び替える方法を指定できます。
1.X一定でYを変化: ターゲットワークシートの値を、ソース行列のX値を昇順で並べ替え、次にY値を昇順で並べ替えます。
2. Y一定でXを変化: ターゲットワークシートの値を、ソース行列のY値を昇順で並べ替え、次にX値を昇順で並べ替えます。
/* このサンプルでは、行列データをXYZワークシート列に変換する方法を示します。 サンプルデータ:exe_path\Samples\Matrix Conversion and Gridding\Direct.dat 1.新規作成した行列にデータをロードします。 2.行列をXYZワークシートデータに変換します。 */ // サンプルファイル名を取得 fn$ = system.path.program$ + "Samples\Matrix Conversion and Gridding\Direct.dat"; // 行列ウィンドウを作成 win -t matrix origin; // アクティブ行列にデータをインポート impASC fn$; // X一定でYを変化オプションで行列をXYZワークシートに変換 m2w m:=1;