Вызовите методы экземпляра класса

Стандартный метод отображения

После того, как вы создадите экземпляр класса, можно вызвать методы класса получить доступ к инкапсулированным функциям MATLAB®. Продукт MATLAB Compiler SDK™ использует стандартный метод, чтобы сопоставить исходный синтаксис функции MATLAB со списком аргументов метода. Этот стандартный метод отображения следующие:

  • nargout

    Когда метод имеет выходные аргументы, первым аргументом всегда является nargout, который имеет тип Long. Этот входной параметр передает нормальный MATLAB параметр nargout инкапсулированной функции и задает, сколько требуют выходные параметры. Методы, которые не имеют выходных аргументов, не передают аргумент nargout.

  • Выходные параметры

    Следующий nargout является выходными параметрами, перечисленными в том же порядке, как они появляются на левой стороне исходной функции MATLAB.

  • Введите параметры

    Затем существуйте входные параметры, перечисленные того же порядка, как они появляются на правой стороне исходной функции MATLAB.

Например, самая типичная функция MATLAB:

function [Y1, Y2, ..., varargout] = foo(X1, X2, ..., varargin)

Эта функция сопоставляет непосредственно со следующей подписью Microsoft® Visual Basic®:

Sub foo(nargout As Long, _
        Y1 As Variant, _
        Y2 As Variant, _
        .
        .
        varargout As Variant, _
        X1 As Variant, _
        X2 As Variant, _
        .
        .
        varargin As Variant)

Дополнительную информацию см. в Соглашениях о вызовах и примерах стандартного отображения от функций MATLAB до вызовов метода COM-класса.

Вариант

Все аргументы ввода и вывода вводятся как Variant, тип данных Visual Basic по умолчанию. Тип Variant может содержать любой из основных типов Visual Basic, массивы любого типа и ссылки на объект. Смотрите Преобразование Данных для получения дополнительной информации о преобразовании любого основного типа к и от типов данных MATLAB.

В целом можно предоставить любой тип Visual Basic в качестве аргумента к методу класса, за исключением Visual Basic Определяемые пользователем Типы (UDTs).

Когда вы передаете простой тип Variant как выходной параметр, вызываемый метод выделяет полученные данные и освобождает исходное содержимое Variant. В этом случае достаточно определить размеры каждого выходного аргумента как одного Variant. Когда тип объекта (как Excel® Range) передается как выходной параметр, ссылка на объект передается в обоих направлениях, и свойство Value объекта получает данные.

Передайте параметры ввода и вывода

Следующие примеры показывают, как передать параметры ввода и вывода методам класса COM-компонента в Visual Basic.

Первым примером является функция, foo, который берет два аргумента и возвращает один выходной аргумент. Функция foo диспетчеризирует вызов метода класса, который соответствует функции MATLAB формы function y = foo(x1,x2).

Function foo(x1 As Variant, x2 As Variant) As Variant
   Dim aClass As Object
   Dim y As Variant
   
   On Error Goto Handle_Error
   Set aClass = CreateObject("mycomponent.myclass.1_0")
   Call aClass.foo(1,y,x1,x2)
   foo = y
   Exit Function
Handle_Error:
   foo = Err.Description
End Function

Второй пример переписывает функцию foo как стандартную подпрограмму:

Sub foo(Xout As Variant, X1 As Variant, X2 As Variant)
   Dim aClass As Object

   On Error Goto Handle_Error
   Set aClass = CreateObject("mycomponent.myclass.1_0")
   Call aClass.foo(1,Xout,X1,X2)
   Exit Sub
Handle_Error:
   MsgBox(Err.Description)
End Sub