После того, как вы создадите экземпляр класса, можно вызвать методы класса получить доступ к инкапсулированному 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