Main Content

GetFullMatrix

オートメーション サーバーのワークスペースからの行列

概要

IDL メソッド シグネチャ

GetFullMatrix([in] BSTR varname, [in] BSTR workspace,
    [in, out] SAFEARRAY(double) *pr, [in, out] SAFEARRAY(double) *pi)

Microsoft Visual Basic クライアント

GetFullMatrix(varname As String, workspace As String,
    [out] XReal As Double, [out] XImag As Double

MATLAB クライアント

[xreal ximag] = GetFullMatrix(h,'varname','workspace',zreal,zimag)

説明

[xreal ximag] = GetFullMatrix(h,'varname','workspace',zreal,zimag) はハンドル h に接続したサーバーの指定 workspace から変数 varname に格納された行列を取得します。関数は、xreal の実数部および ximag の虚数部を返します。workspace の値は base または global です。

引数 zreal および zimag は、サーバーから返される実数行列および虚数行列 (xreal および ximag) と同じサイズの行列です。行列 zreal および zimag は、通常はゼロに設定されます。

GetFullMatrix は、double 型の値をもつ 2 次元行列にのみ使用します。その他のタイプには、関数 GetVariable または関数 GetWorkspaceData を使用してください。より高次元の行列を使用するには、MATLAB® から受け取った 2 次元行列の形状を変更します。

VBScript クライアントでは、関数 GetWorkspaceData と関数 PutWorkspaceData を使用して、MATLAB ワークスペースと数値データをやり取りします。これらの関数は、関数 GetFullMatrix と関数 PutFullMatrix で使用される safearray ではなく、variant データ型を使用します。VBScript は safearray をサポートしていません。

すべて展開する

この例では、MATLAB オートメーション サーバーから double 型の複素数行列を読み取る方法を示します。

type getfullmatrix.vba
Dim MatLab As Object
Dim Result As String
Dim XReal(4, 4) As Double
Dim XImag(4, 4) As Double
Dim i, j As Integer

Set MatLab = CreateObject("matlab.application")
Result = MatLab.Execute("M = rand(5);")
MsgBox("In MATLAB, type" & vbCrLf & "M(3,4)")
x = MatLab.GetFullMatrix("M", "base", XReal, XImag)
' Display element (3,4). The array in VBA
' is 0-based.
i = 2
j = 3
MsgBox("XReal(" & i + 1 & "," & j + 1 & ")" & _
    " = " & XReal(i, j))

この例では、MATLAB オートメーション サーバーから double 型の複素数行列を読み取る方法を示します。

type getfullmatrix.vb
Dim MatLab As Object
Dim Result As String
Dim XReal(4, 4) As Double
Dim XImag(4, 4) As Double
Dim i, j As Integer

MatLab = CreateObject("matlab.application")
Result = MatLab.Execute("M = rand(5);")
MsgBox("In MATLAB, type" & vbCrLf & "M(3,4)")
MatLab.GetFullMatrix("M", "base", XReal, XImag)
' Display element (3,4). The array in VB .NET
' is 0-based.
i = 2
j = 3
MsgBox("XReal(" & i + 1 & "," & j + 1 & ")" & _
    " = " & XReal(i, j))

バージョン履歴

R2006a より前に導入