DADiSP/MATLINK

MATLAB コード実行化モジュール 詳細

MATLINKはMATLABプログラムをDADiSPから直接実行し、相互のデータを交換することができます。MATLAB関数やスクリプトの作成・編集がDADiSP関数と同じ要領で実行することができます。 スカラーや書式などの列データが、Active Xのインターフェイスを通して最初のバイナリ形式に交換されます。

動作原理

DADiSPを通して簡単にMATLABオブジェクトを作成します。MATLABオブジェクトはMATLABで使用される表現を実行することができ、実行結果はActiveXを通してDADiSPの結果として返されます。コードはMATLAB上で動いているため、MATLABで通常返される結果と同じ結果となります。

ml . 構文

MATLABオブジェクトのデフォルト名はml .となっています。例として、以下のDADiSPコマンドでは現在のMATLABのバージョンを表示します。

ml . version

MATLABへの接続は自動的に行われ、初期設定などは必要ありません。

Mix and Match

DADiSPとMATLAB関数は互換性があり、ワークシートやSPL関数内において相互に連絡します。例えば、

W1 : gnorm ( 10000, 1 ) W2 : ml . diff ( W1 )

W1は10,000のサンプル点数を含んだガウス分布のランダムノイズです。上式では、MATLAB diff 関数によって計算処理され、結果がW2に表示されます。また、W1のデータが変更されればW2も自動的に更新されます。 このdiff 関数では下記以外の操作は他のDADiSP関数と同じように実行可能となっています。

  1. DADiSPが要求されたデータをMATLABへ送ること
  2. MATLABが関数を実行すること
  3. 実行結果がDADiSPへ返されること
全体の実行処理は自動的かつ能率的に行われます。

データの交換

MATLINKでは、DADiSPとMATLABで使用されるそれぞれの変数を的確にデータ交換します。例えば、

/ / assign a DADiSP series to a MATLAB variable
ml . MatVar = 1 . . 100 ;

/ / return a MATLAB variable to DADiSP and process
x = 10 * ml . MatVar ;

MATLABの変数であるMatVarが生成し、1から100までの値をもつシリーズとなります。そしてDADiSPの変数であるxは、MATLAB変数に10を掛けた値を含みます。ここで要求されたデータの転送はMATLABオブジェクトとして自動的に処理され、.(ドット)構文はプログラム変数を交換する操作を与えます。

MATLABコマンドプロンプト

MATLAB構文に含まれるMATLABの表現は、> のコマンドプロンプトを使用すると直接実行可能となります。例として、

W1 : > 1 : 100
W2 : integ ( W1 )

W1はMATLABの表現として、1から100までの値を含みます。W2はW1データを積分します。このときにおいても、W1の変更が直ぐW2に反映されます。
DADiSP上で1 . . 100と定義すれば同等のデータが組まれますが、MATLAB構文では上記のように1 : 100と表現されます。ある表現が > コマンドプロンプトに付随したときに、通常のMATLAB構文における表現が構築されます。

追加特長

MATLAB関数に対するヘルプは、mlhelp関数を使用して表示することができます。例として、

mlhelp eig

ここでは、MATLAB関数のeig 関数についてのヘルプを参照することができます。 すなわち、複数の値をMATLAB関数から返すことも可能です。例として、

W1 : rand ( 10 )
W2 : ( v , d ) = ml . eig ( W1 ) ; d

eig 関数は2つの列を返します。固有値を含む対角行列がW2に表示されます。

MATLABから発せられたエラーメッセージや警告文がDADiSP上に表示されます。結果となる関数はポップアップウィンドウに表示されます。現在利用可能なMATLAB変数のリストを表示させる関数は以下のとおりです。

ml . whos

必要規格

MATLINKはライセンス取得したMATLAB ver 4.0以上のコピーを必要とします。また同様に、DADiSP 6.0 Build 19以上も必要となります。DADiSPのバージョンアップの際はお知らせ頂けると幸いです。


戻る概要 | DADiSP/MATLINK関数リスト次へ