Main Content

PutFullMatrix

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

概要

IDL メソッド シグネチャ

PutFullMatrix([in] BSTR varname, [in] BSTR workspace,
    [in] SAFEARRAY(double) xreal, [in] SAFEARRAY(double) ximag)

Microsoft Visual Basic クライアント

PutFullMatrix([in] varname As String, [in] workspace As String,
    [in] xreal As Double, [in] ximag As Double)

MATLAB クライアント

PutFullMatrix(h,'varname','workspace',xreal,ximag)

説明

PutFullMatrix(h,'varname','workspace',xreal,ximag) は、ハンドル h に関連付けられているサーバーに指定されている workspace に行列を格納し、変数 varname を割り当てます。xrealximag を行列の実数部と虚数部に使用します。workspace の値は base または global です。

行列は、スカラーや空の配列にしたり、3 次元以上の次元を含めたりできません。高次元の行列を使用するには、行列を 2 次元行列に形状変更してから MATLAB® サーバーに送信します。その後、MATLAB から行列を受信して元の次元に戻します。

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

すべて展開する

この例では、Visual Basic® .NET クライアントを使用して、行列を MATLAB サーバーのベース ワークスペースに書き込みます。

type putfullmatrixbase.vb
Dim MatLab As Object
Dim XReal(4, 4) As Double
Dim XImag(4, 4) As Double
Dim ZReal(4, 4) As Double
Dim ZImag(4, 4) As Double
Dim i, j As Integer

For i = 0 To 4
   For j = 0 To 4
      XReal(i, j) = Rnd() * 6
      XImag(i, j) = 0
   Next j
Next i

Matlab = CreateObject("matlab.application")
MatLab.PutFullMatrix("M","base",XReal,XImag)
MatLab.GetFullMatrix("M","base",ZReal,ZImag)

この例では、Visual Basic® .NET クライアントを使用して、行列を MATLAB サーバーのグローバル ワークスペースに書き込みます。

type putfullmatrixglobal.vb
Dim MatLab As Object
Dim XReal(1,2) As Double
Dim XImag(1,2) As Double
Dim result As String
Dim i,j As Integer

For i = 0 To 1
   For j = 0 To 2
      XReal(i,j) = (j * 2 + 1) + i
      XImag(i,j) = 1
   Next j
Next i

Matlab = CreateObject("matlab.application")
MatLab.PutFullMatrix("X","global",XReal,XImag)
result = Matlab.Execute("whos global")
MsgBox(result)

この例では、VBA クライアントを使用して、行列を MATLAB サーバーのベース ワークスペースに書き込みます。

type putfullmatrixbase.vba
Dim MatLab As Object 
Dim XReal(4, 4) As Double 
Dim XImag(4, 4) As Double 
Dim ZReal(4, 4) As Double 
Dim ZImag(4, 4) As Double 
Dim i, j As Integer 
 
For i = 0 To 4 
    For j = 0 To 4 
        XReal(i, j) = Rnd() * 6 
        XImag(i, j) = 0 
    Next j 
Next i 

Set MatLab = CreateObject("matlab.application") 
x = MatLab.PutFullMatrix("M", "base", XReal, XImag) 
y = MatLab.GetFullMatrix("M", "base", ZReal, ZImag)

この例では、VBA クライアントを使用して、行列を MATLAB サーバーのグローバル ワークスペースに書き込みます。

type putfullmatrixglobal.vba
Dim MatLab As Object 
Dim XReal(1, 2) As Double 
Dim XImag(1, 2) As Double 
Dim result As String 
Dim i, j As Integer 
 
For i = 0 To 1 
    For j = 0 To 2 
        XReal(i, j) = (j * 2 + 1) + i 
        XImag(i, j) = 1 
    Next j 
Next i 
 
Set MatLab = CreateObject("matlab.application") 
x = MatLab.PutFullMatrix("X", "global", XReal, XImag) 
result = MatLab.Execute("whos global") 
MsgBox (result)

バージョン履歴

R2006a より前に導入