m2w

メニュー情報

行列:ワークシートに変換

概要

ワークシートに行列データを変換

追加の情報

必要な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ファンクションの実行オプション

スクリプトからXファンクションにアクセスする場合、追加のオプションスイッチについてのページを参照してください。

変数

表示
変数
I/O

データ型
デフォルト
説明
入力行列 im

入力

MatrixObject

<active>

ソース行列オブジェクトを指定します。

入力行列 ims

入力

MatrixLayer

<optional>

ソース行列シートを指定します。行列シート内の全オブジェクトを変換する場合、imの代わりにimsを使用する必要があります。
method:=xyz, multi:=1の時利用可能です。

手法 method

入力

int

direct

変換法を指定します。
オプションリスト:

  • direct:形状のまま
    直接変換
  • xyz:XYZ列
    XYZ列のワークシートを作成します。
データフォーマット xy

入力

int

xcol

これは、手法形状のままが選択されている場合のみ利用できます。データを出力するワークシートでのデータ配置を指定します。
オプションリスト:

  • xcol:列方向のX
    同じX値に対応する行列値が列に配置され、異なるX値に対応する2つの行列値は異なる列に配置されます。X値変数にX値を出力することもできます。
  • ycol:列方向のY
    同じY値に対応する行列値が列に配置され、異なるY値に対応する2つの行列値は異なる列に配置されます。Y値変数にX値を出力することもできます。
  • noxy:XとYがありません
    行列のXとYの値は出力されません。
最初の列のY値 ycol

入力

int

0

これは、データフォーマット列方向のXが選択されている場合のみ利用できます。出力ワークシートの最初の列に行列のY値を出力するかを指定します。

最初の列のX値 xcol

入力

int

0

これは、データフォーマット列方向のYが選択されている場合のみ利用できます。出力ワークシートの最初の列に行列のX値を出力するかを指定します。

X値の位置 xlabel

入力

int

none

これは、データフォーマット列方向のXが選択されている場合のみ利用できます。行列のX値を出力するかを指定し、出力する場合は、保存位置を指定します。
オプションリスト:

  • none:なし
    行列のX値を出力しません。
  • row1:第1行
    出力ワークシートの最初の行に行列のX値を出力します。
  • syspara:システムパラメータ
    出力ワークシートのシステムパラメータ行に行列のX値を出力します。以下のシステムパラメータ変数を参照してください。
  • userpara:ユーザ定義パラメータ
    出力ワークシートのユーザ定義パラメータ行に行列のX値を出力します。以下のユーザ定義パラメータ変数を参照してください。
Y値の位置 ylabel

入力

int

none

これは、データフォーマット列方向のYが選択されている場合のみ利用できます。行列のY値を出力するかを指定し、出力する場合は、保存位置を指定します。
オプションリスト:

  • none:なし
    行列のY値を出力しません。
  • row1:第1行
    出力ワークシートの最初の行に行列のY値を出力します。
  • syspara:システムパラメータ
    出力ワークシートのシステムパラメータ行に行列のY値を出力します。以下のシステムパラメータ変数を参照してください。
  • userpara:ユーザ定義パラメータ
    出力ワークシートのユーザ定義パラメータ行に行列のY値を出力します。以下のユーザ定義パラメータ変数を参照してください。
システムパラメータ sysparam

入力

int

p1

X値またはY値システムパラメータが選択されている場合にのみ使用できます。行列のX/Y値を保存するためのシステムパラメータラベル行を指定します。
オプションリスト:

  • p1: パラメータ1
    パラメータ1ラベル行です。
  • p2: パラメータ2
    パラメータ2ラベル行です。
  • p3: パラメータ3
    パラメータ3ラベル行です。
  • p4: パラメータ4
    パラメータ4ラベル行です。
  • p5: パラメータ5
    パラメータ5ラベル行です。
  • p6: パラメータ6
    パラメータ6ラベル行です。
  • p7: パラメータ7
    パラメータ7ラベル行です。
  • p8: パラメータ8
    パラメータ8ラベル行です。
  • p9: パラメータ9
    パラメータ9ラベル行です。
  • p10: パラメータ10
    パラメータ10ラベル行です。
ユーザ定義パラメータ userdef

入力

string

UserDefined

X値またはY値ユーザ定義パラメータが選択されている場合にのみ使用できます。行列のX/Y値を保存するためのユーザ定義パラメータラベル行を指定します。

変換 multi

入力

int

0

行列シート内に複数の行列オブジェクトがある場合、単一オブジェクトのみ変換するか全て変換するか指定できます。
method:=xyzの時利用できます。

オプションリスト:

  • 0=single:単一オブジェクトのみ
    第1行列オブジェクトのみ変換します。
  • 1=all:すべてのオブジェクト
    指定した行列シート内のすべてのオブジェクトを変換します。

Note: この2つのオプションは、入力変数が異なります。

オプション option

入力

int

xconst

これは、手法XYZ列が選択されている場合のみ利用できます。ワークシートの値をどのようにソートするか指定します。
オプションリスト:

  • xconst:X一定でYを変化
    ターゲットワークシートの値を、ソース行列のX値を昇順で並べ替え、次にY値を昇順で並べ替えます。
  • yconst:Y一定でXを変化
    ターゲットワークシートの値を、ソース行列のY値を昇順で並べ替え、次にX値を昇順で並べ替えます。
欠損値の削除 trim

入力

int

0
このチェックボックスは、手法XYZ列の場合にのみ利用できます。チェックを付けると、行列内の欠損値がスキップされ、ワークシート上では含めません。チェックを外すと、欠損値も結果ワークシートに表示されます。
出力ワークシート ow

出力

Worksheet

[<new>]<new>

出力ワークシートを指定します。

このシンタックスを参照してください。

説明

行列には1つのZ値のデータセットが表示されます。これには次のような特徴があります。

  • 線形の等間隔なのX値でマッピングされた番号付きの列。
  • 線形の等間隔なのY値でマッピングされた番号付きの行。

デフォルトでは、行ヘッダには列および行番号が表示されます(左図)。右図のようにXおよびYの値を表示するには、メニューから表示:X/Yを表示を選択します。

M2w image12.gif

行列をワークシートに変換するには、2つの方法があります。: 1つは直接変換で、もう1つはXYZ列を持つワークシートを作成する方法です。

直接変換:

1.XとYなし

行列のセル値のみを変換します。

M2w image13.gif

2.列方向のX

行列値がXマッピング値によってワークシート列に並び替え:同じX値に対応する行列値が同じ列に配置され、異なるX値に対応する2つの行列値は異なる列に配置されます。

この方法では、行列のXY値をワークシートの1列目および1行目に出力するか、またはワークシートラベルに出力するどうかを指定できます。次のサンプルは、直接変換を使用し、目的のワークシートの最初の行にX値を加え、最初の列にY値を加えます。

M2w image14.gif

3.列方向のY:

行列値がYマッピング値によってワークシート列に並び替え:同じY値に対応する行列値が同じ列に配置され、異なるY値に対応する2つの行列値は異なる列に配置されます。

この方法では、行列のXY値をワークシートの1列目および1行目に出力するか、またはワークシートラベルに出力するどうかを指定できます。次のサンプルは、直接変換を使用し、目的のワークシートのパラメータ 1行にY値を加え、最初の列にX値を加えます。

M2w image15.png

XYZ列のワークシートを作成:

この手法ではX、Y、Z 列のあるワークシートを作成します。行列のセルの値はワークシート内のZデータに変換されます。ワークシートの対応するXY列の値は行列のXとYのマッピング情報によって設定されます。そして、オプション変数を使って変換したワークシートを並び替える方法を指定できます。

1.X一定でYを変化: ターゲットワークシートの値を、ソース行列のX値を昇順で並べ替え、次にY値を昇順で並べ替えます。

M2w image16.gif

2. Y一定でXを変化: ターゲットワークシートの値を、ソース行列のY値を昇順で並べ替え、次にX値を昇順で並べ替えます。

M2w image17.gif

サンプル

  • コードサンプル
/*
このサンプルでは、行列データを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;

関連するXファンクション

w2m, r2m, wexpand2m