exponenta event banner

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) сохраняет матрицу в указанном workspace сервера, подключенного к дескриптору h и присваивает его переменной varname. Использовать xreal и ximag для действительной и мнимой частей матрицы. Значения для workspace являются base или global.

Матрица не может быть скаляром, пустым массивом или иметь более двух измерений. Для использования матриц с более высокой размерностью перед отправкой на сервер MATLAB ® измените форму матрицы на 2-D матрицу. Затем измените размеры обратно после получения из MATLAB.

Для клиентов VASEcript используйте GetWorkspaceData и PutWorkspaceData для передачи числовых данных в рабочую область MATLAB и из нее. Эти функции используют variant тип данных вместо safearray, который VASEcript не поддерживает.

Примеры

развернуть все

В этом примере используется клиент 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