| 外部インタフェース/API | ![]() |
本節では、MATLAB Automation Serverがサポートするメソッドについて示します。引数と返り値に対するデータタイプは、ActiveX Automationデータタイプとして表わされ、これはActiveX Automationプロトコルで定義される言語と独立のタイプです。たとえば、BSTRはAutomationタイプとして定義されたワイドキャラクタ文字列のタイプで、文字列を保存するためにVisual Basicで使うデータ書式と同じです。これらの宣言と操作法の詳細はコントローラ固有ですが、ActiveX準拠コントローラはこれらのデータタイプをサポートします。
BSTR Execute([in] BSTR Command);
このコマンドは、MATLABコマンドウィンドウプロンプトでタイプされるコマンドを含む単一の文字列(Command)を持ちます。MATLABは、コマンドを実行し、結果を文字列として出力します。コマンドにより生成されたfigureウィンドウは、コマンドがコマンドウィンドウまたはM-ファイルから直接実行されたかのようにスクリーンに表示されます。Visual Basicの例を以下に示します。
Dim MatLab As Object
Dim Result As String
Set MatLab = CreateObject("Matlab.Application")
Result = MatLab.Execute("surf(peaks)")
void GetFullMatrix(
[in] BSTR Name,
[in] BSTR Workspace,
[in, out] SAFEARRAY(double)* pr,
[in, out] SAFEARRAY(double)* pi);
このメソッドは、ワークスペースから1次元または2次元の実数または虚数配列mxArrayを読み込みます。実部と(オプションの)虚部は、doubleの別々の配列に読み込まれます。
Workspace.. mxArrayを含むワークスペースを識別します。デフォルトのMATLABワークスペースからmxArrayを読み込むためには、ワークスペース名"base"を使ってください。mxArrayをグローバルのMATLABワークスペースに置くためには、ワークスペース名"grobal"を使ってください。"呼び出し側の"ワークスペースは、MEX-ファイル以外で使われる場合はAPIでは意味を持ちません。
pr.. 読み込まれるmxArrayと同じサイズの実数配列。この配列は、mxArrayの実数値を含みます。
pi.. 読み込まれるmxArrayと同じサイズの実数配列。この配列は、mxArrayの虚数値を含みます。要求されるmxArrayが複素数でなければ、空配列が渡されなければなりません。Visual Basicでは、空配列はDim Mempty() as Doubleと宣言されます。Visual Basicの例を以下に示します。
Dim MatLab As Object
Dim Result As String
Dim MReal(1, 3) As Double
Dim MImag() As Double
Dim RealValue As Double
Dim i, j As Integer
rem We assume that the connection to MATLAB exists.
Result = MatLab.Execute("a = [1 2 3 4; 5 6 7 8;]")
Call MatLab.GetFullMatrix("a", "base", MReal, MImag)
For i = 0 To 1
For j = 0 To 3
RealValue = MReal(i, j)
Next j
Next i
void PutFullMatrix(
[in] BSTR Name,
[in] BSTR Workspace,
[in] SAFEARRAY(double) pr,
[in] SAFEARRAY(double) pi);
このメソッドは、ワークスペースに1次元または2次元の実数または虚数配列mxArrayを置きます。実部と(オプションの)虚部は、doubleの別々の配列に渡されます。
Workspace.. mxArrayが置かれるワークスペースを識別します。デフォルトのMATLABワークスペースにmxArrayを置くためには、ワークスペース名"base"を使ってください。グローバルのMATLABワークスペースにmxArrayを置くためには、ワークスペース名"global"を使ってください。"呼び出し側の"ワークスペースは、MEX-ファイル以外で使われる場合は、APIでは意味を持ちません。
pi.. mxArrayの虚数値を含む実数配列。送信される mxArrayが複素数でない場合は、このパラメータに対して空配列が渡されなければなりません。Visual Basicでは、空配列はDim Mempty() as Doubleと宣言されます。このメソッドのVisual Basicの例を以下に示します。
Dim MatLab As Object
Dim MReal(1, 3) As Double
Dim MImag() As Double
Dim i, j As Integer
For i = 0 To 1
For j = 0 To 3
MReal(i, j) = I * j;
Next j
Next I
rem We assume that the connection to MATLAB exists.
Call MatLab.PutFullMatrix("a", "base", MReal, MImag)
| MATLAB ActiveX Automation Serverのサポート | ActiveX Serverの情報 | ![]() |