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