スクリプト構文リファレンス > JSL関数 > MATLABインテグレーション関数
公開日: 04/01/2021

MATLABインテグレーション関数

JMPには、MATLABへのインターフェースが関数として用意されています。基本的には、まず、MATLABへの接続を開始し、次に、何らかの処理をMATLAB上で実行し、最後にMATLABへの接続を解除します。これらの関数の多くは、MATLABの処理が正常に実行された場合は0、そうでない場合は、エラーコードを戻します。MATLABの処理が正常に実行されなかった場合は、「ログ」ウィンドウにメッセージが表示されます。ただし、MATLAB Get( )関数だけは、エラーコード以外の値を戻します。

MATLABとのインターフェースの使用方法については、『スクリプトガイド』のMATLABの操作を参照してください。

MATLAB JSL関数インターフェース

MATLAB Connect( <named arguments> )

説明

現在のMATLAB接続オブジェクトを戻します。もし、現在、MATLABに接続されていない場合は、JMPからMATLABへの接続を初期化した後、MATLAB接続オブジェクトを戻します。

戻り値

スクリプト可能なMATLABオブジェクト

名前付き引数

Echo(Boolean)

実行したMATLABのプログラムコードを、JMPのログに出力する。デフォルト値は1(真)。

MATLAB Control( <named arguments> )

説明

プログラムコードの表示などの外部イベントの制御命令をMATLABに送る。

戻り値

なし

引数

なし

名前付き引数

Echo(Boolean)

グローバル。実行したMATLABのプログラムコードを、JMPのログに出力する。

Visible(Boolean)

グローバル。アクティブなMATLABワークスペースの表示/非表示を指定する。

MATLAB Execute( { list of inputs }, { list of outputs }, mCode, <named arguments> )

説明

現在のグルーバルなMATLAB接続に対して、第1引数のリストに指定されたJMP変数を送り、第3引数に指定されたMATLABコードをサブミットする。第2引数のリストに指定された変数が、JMPに戻されます。

戻り値

成功した場合は0、そうでない場合は0以外

引数

{ list of inputs }

位置固定、名前のリスト。入力としてMATLABに送られるJMP変数名のリスト。

{ list of outputs }

位置固定、名前のリスト。出力としてMATLABから取得されるJMP変数名のリスト。

mCode

位置固定、文字列。サブミットされるMATLABコード。

名前付き引数

Expand(Boolean)

MATLABコードのサブミット前に、コードに対してEval Insertを実行する。

Echo(Boolean)

実行したMATLABのプログラムコードを、JMPのログに出力する。デフォルト値は1(真)です。

次の例では、JMP変数xとyをMATLABに送り、MATLABステートメントz = x * yを実行して、MATLAB変数zを取得してJMPに戻します。

MATLAB Init();
x = [1 2 3];
y = [4 5 6];
MATLAB Execute( {x, y}, {z}, "z = x * y;" );
Show( z );

MATLAB Get( name )

説明

name引数で指定されたMATLABの変数を、JMPで取得する。

戻り値

name引数で指定された変数の値

引数

name

位置固定。MATLABに送るJMP変数の名前。

qbxという名前の行列と、dfという名前の構造体が、MATLAB上に存在するとします。

// MATLAB変数qbxの値を取得し、それをJMP変数qbxに代入
qbx = MATLAB Get( qbx );
 
/* MATLAB変数dfのデータフレームを、JMPの変数dfにて参照される
JMPデータテーブルとして取得*/
df = MATLAB Get( df );

表2.1に、MATLAB Get( )関数でMATLABからJMPに変数を取得した場合に、MATLABのデータタイプ(データ型)が、JMPにおいて、どのような型に変換されるかを示します。リストの場合は、リスト内の要素ごとにデータタイプをチェックして、変換します。入れ子になったリストもサポートされます。

表2.1 MATLAB Get( )関数のJMPデータタイプとMATLABデータタイプ

MATLABデータタイプ

JMPデータタイプ

実数(double)

数値

論理

数値 ( 0 | 1 )

文字列

文字列

整数

数値

日付/時間

数値

構造体

データテーブル

行列

行列

数値ベクトル

行列

文字列ベクトル

文字列のリスト

グラフ

ピクチャーオブジェクト

MATLAB Get Graphics( format )

説明

MATLABグラフ表示ウィンドウに書き込まれた最後のグラフオブジェクトを、format引数で指定されたグラフィック形式で取得する。

戻り値

JMPピクチャーオブジェクト

引数

format

位置固定。MATLABのグラフを取得するときの変換形式。有効な形式は、"png"、"bmp"、"jpeg"、"jpg"、"tiff"、および"tif"です。

MATLAB Get Version

説明

JMPのMATLABインターフェースで使用されているMATLABのバージョン番号を戻す。

MATLAB Init( <named arguments> )

説明

MATLAB接続インターフェースを初期化する。

戻り値

リターンコード

名前付き引数

Echo(Boolean)は、実行したMATLABのプログラムコードを、JMPのログに出力する。このオプションは、グローバルです。デフォルト値は1(真)。

MATLAB Is Connected()

説明

MATLAB接続がアクティブかどうかを調べる。

戻り値

アクティブなMATLAB接続がある場合は1、そうでない場合は0を戻す。

MATLAB JMP Name To MATLAB Name( name )

説明

MATLABの命名規則に従い、JMP変数名を、対応するMATLAB変数名に変換する。

戻り値

マップされたMATLABの変数名を文字列として戻す。

引数

name

位置固定。MATLABに送るJMP変数の名前。

MATLAB Send( name, <named arguments> )

説明

名前付き変数をJMPからMATLABに送る。

戻り値

成功した場合は0、そうでない場合は0以外

引数

name

位置固定。MATLABに送るJMP変数の名前。

名前付き引数

次のオプションの引数は、データテーブルにのみ適用されます。

Selected(Boolean)

参照先データテーブルの選択されている行をMATLABに送る。

Excluded(Boolean)

参照先データテーブルの除外されている行のみをMATLABに送る。

Labeled(Boolean)

参照先データテーブルのラベルのついている行のみをMATLABに送る。

Hidden(Boolean)

参照先データテーブルの非表示の行のみをMATLABに送る。

Colored(Boolean)

参照先データテーブルの色のついている行のみをMATLABに送る。

Markered(Boolean)

参照先データテーブルのマーカーのついている行のみをMATLABに送る。

Row States(Boolean, <named arguments>)

参照先データテーブルにおける行属性の情報を、「RowState」という列名のデータ列を追加して、MATLABに送る。個々の設定をあわせて追加すれば、複数選択も可能です。行属性の各設定には、それぞれ次の値が割り当てられています。

Selected = 1

Excluded = 2

Labeled = 4

Hidden = 8

Colored = 16

Markered = 32

Row Statesには、次の名前付き引数をオプションで指定できます。

Colors(Boolean)

行の色を送る。「RowStateColor」という名前のデータ列を追加します。

Markers(Boolean)

行のマーカーを送る。「RowStateMarker」という名前のデータ列を追加します。

// 行列を変数Xに代入し、その変数をMATLABに送る。
X = [1 2 3];
ml = MATLAB Send( X );
 
/* データテーブルを開き、データテーブルへの参照をdtに割り当て、
データテーブルとその行の属性をMATLABに送る */
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
ml = MATLAB Send( dt, Row States( 1 ) );

表2.2に、MATLAB Send( )関数でJMPからMATLABに変数を送った場合に、JMPのデータタイプ(データ型)が、MATLABにおいて、どのような型に変換されるかを示します。リストの場合は、リスト内の要素ごとにデータタイプをチェックして、変換します。なお、入れ子になっているリストも、サポートされています。

表2.2 MATLAB Send( )関数のJMPデータタイプとMATLABデータタイプ

MATLABデータタイプ

JMPデータタイプ

実数(double)

数値

文字列

文字列

実数の行列

行列

構造体

データテーブル

MATLAB Init( );
X = 1;
MATLAB Send( X );
S = "Report Title";
MATLAB Send( S );
M = [1 2 3, 4 5 6, 7 8 9];
MATLAB Send( M );
MATLAB Submit( "
X
S
M
" );
MATLAB Term( );

MATLAB Send File(filename, <MATLAB Name(name)>)

説明

データファイルをMATLABに送る。

引数

filename

MATLABに送るファイルのパス名を表す文字列を指定する。

MATLAB Name

MATLABに送るファイルの名前を変更できる。

MATLAB Submit File( ’pathname’, <named arguments> )

説明

pathnameで指定されたファイルに含まれるMATLABコードを、MATLAB上で実行する。

戻り値

成功した場合は0、そうでない場合は0以外

引数

pathname

位置固定、文字列。実行するMATLABプログラムコードを含むファイルのパス名。

名前付き引数

Expand(Boolean)

MATLABコードのサブミット前に、コードに対してEval Insertを実行する。

Echo(Boolean)

実行したMATLABのプログラムコードを、JMPのログに出力する。デフォルト値は1(真)です。

MATLAB Submit( mCode, <named arguments> )

説明

アクティブなグローバルMATLAB接続に、MATLABコードをサブミットする。

戻り値

成功した場合は0、そうでない場合は0以外

引数

mCode

位置固定、文字列。サブミットされるMATLABコード。

名前付き引数

Expand(Boolean)

MATLABコードのサブミット前に、コードに対してEval Insertを実行する。

Echo(Boolean)

実行したMATLABのプログラムコードを、JMPのログに出力する。デフォルト値は1(真)です。

次の例は、2つの乱数ベクトルを作成し、それらをx変数とy変数にプロットします。

MATLAB Init();
mc = MATLAB Submit("/[
	x = rand(5);
	fprintf('%f/n', x);
	y = rand(5);
	fprintf('%f/n', x);
	z = plot(x, y);
]/" );

MATLAB Term();

説明

MATLABへの接続を終了する(アクティブなMATLAB接続インターフェースを終了する)。

戻り値

アクティブなMATLAB接続がある場合は1、そうでない場合は0

引数

なし

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).