Main Content

PutFullMatrix

Matrix in Automation server workspace

Synopsis

IDL Method Signature

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

Microsoft Visual Basic Client

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

MATLAB Client

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

Description

PutFullMatrix(h,'varname','workspace',xreal,ximag) stores a matrix in the specified workspace of the server attached to handle h and assigns it to variable varname. Use xreal and ximag for the real and imaginary parts of the matrix. The values for workspace are base or global.

The matrix cannot be a scalar, an empty array, or have more than two dimensions. To use higher dimensional matrices, reshape the matrix to a 2-D matrix before sending it to the MATLAB® server. Then change the dimensions back after receiving it from MATLAB.

For VBScript clients, use the GetWorkspaceData and PutWorkspaceData functions to pass numeric data to and from the MATLAB workspace. These functions use the variant data type instead of safearray, which VBScript does not support.

Examples

expand all

This example uses a Visual Basic® .NET client to write a matrix to the base workspace of the MATLAB server.

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)

This example uses a Visual Basic® .NET client to write a matrix to the global workspace of the MATLAB server.

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)

This example uses a VBA client to write a matrix to the base workspace of the MATLAB server.

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)

This example uses a VBA client to write a matrix to the global workspace of the MATLAB server.

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)

Version History

Introduced before R2006a