MATLABコード実行化モジュール
MATLINKはMATLABコードを実行するためのインターフェイスを実現しています。MATLABの関数を、DADiSPにある関数と同じ要領で処理することができます。 コードの書き直しや一時的につくったファイルを操作する必要がなく、MATLABのプログラムの機能性をDADiSP環境に含ませることができます。
シリーズ、数列、スカラー、書式はすべて自動的に交換されます。ワークシートに埋め込まれたMATLABコードは、ウィンドウが更新されたときに自動的に実行されます。
主な機能
- DADiSPから一貫したMATLABコードの実行が可能
- MATLAB関数やスクリプトの作成・編集が可能
- コードの書き直しが不要で様々なMATLABプログラムが使用可能
- 通常のMATLAB構文における表現の評価をサポート
- DADiSP関数とMATLABコードの互換性が自由
- シリーズ結果等の自動的な視覚化
- プログラムの双方向の交換
- 実数と複素数の両方のデータを処理可能
- スカラーや書式データの対応
- MATLAB 4.0以上に対応
注:MATLABは、MathWorks社の登録商標です。
機能詳細
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 ) ; deig 関数は2つの列を返します。固有値を含む対角行列がW2に表示されます。
MATLABから発せられたエラーメッセージや警告文がDADiSP上に表示されます。結果となる関数はポップアップウィンドウに表示されます。現在利用可能なMATLAB変数のリストを表示させる関数は以下のとおりです。
ml . whos
-
必要規格
MATLINKはライセンス取得したMATLAB ver 4.0以上のコピーを必要とします。また同様に、DADiSP 6.0 Build 19以上も必要となります。DADiSPのバージョンアップの際はお知らせ頂けると幸いです。
MATLINK関数リスト
MATLINK関数はMATLABオブジェクトから簡単に導くことができます。下記の構文は、関数形式のMATLAB表現や互換データを評価するために利用することができます。
MATLINK関数
mleval | MATLAB関数を評価します。 |
---|---|
mlexec | MATLAB構文中の表現を実行します。 |
mlget | MATLAB変数からデータを取得します。 |
mlhelp | MATLAB関数のヘルプを表示します。 |
mlinit | MATLABへの連絡を初期化しMATLABオブジェクトを作成します。 |
mlput | MATLAB変数にデータを設定します。 |
mlvisible | MATLABオートメーションサーバーの表示・非表示を行います。 |