调用类实例的方法
标准映射技术
创建类实例后,可以调用类方法来访问封装的MATLAB®功能。的MATLAB编译SDK™product使用标准技术将原始MATLAB函数语法映射到方法的参数列表。这种标准映射技术如下:
nargout
当一个方法有输出参数时,第一个参数总是
nargout
,这是类型长
.这个输入参数通过普通的MATLABnargout
参数设置为封装函数,并指定请求多少输出。没有输出参数的方法不会传递nargout
论点。输出参数
后
nargout
为输出参数,其顺序与原始MATLAB函数左侧的输出参数相同。输入参数
接下来是与原始MATLAB函数右侧相同顺序列出的输入参数。
例如,最通用的MATLAB函数是:
函数[Y1, Y2,…], varargout] = foo(X1, X2,…变长度输入宗量)
这个函数直接映射到下面微软®Visual Basic®签名:
Sub foo(nargout As Long, _ Y1 As Variant, _ Y2 As Variant, _ . .)varargout作为变体,_ X1作为变体,_ X2作为变体,_ . .varargin As Variant)
看到调用约定有关从MATLAB函数到COM类方法调用的标准映射的更多细节和示例。
变体
所有输入和输出参数的类型为变体
,默认的Visual Basic数据类型。的变体
type可以保存任何基本的Visual basic类型、任何类型的数组和对象引用。看到数据转换有关任何基本类型与MATLAB数据类型之间转换的详细信息。
通常,您可以将任何Visual Basic类型作为类方法的参数提供,但Visual Basic用户定义类型(udt)除外。
当你通过一个简单的变体
类型作为输出参数,则被调用的方法分配接收到的数据并释放变体
.在这种情况下,将每个输出参数划分为单个维度就足够了变体
.当一个对象类型(如Excel®范围
)作为输出参数传递,对象引用在两个方向上传递,对象的价值
属性接收数据。
传递输入和输出参数
下面的例子展示了如何在Visual Basic中将输入和输出参数传递给COM组件类方法。
第一个例子是一个函数,喷火
,它接受两个参数并返回一个输出参数。的喷火
函数将调用分派给对应于窗体的MATLAB函数的类方法函数y = foo(x1,x2)
.
函数foo(x1 As Variant, x2 As Variant)将aClass作为对象Dim y As Variant On Error Goto Handle_Error Set aClass = CreateObject("mycomponent.myclass.1_0")调用aClass.foo(1,y,x1,x2) foo = y Exit函数Handle_Error: foo = Err。结束
第二个示例重写喷火
作为子程序的函数:
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")调用aClass.foo(1,Xout,X1,X2)退出Sub Handle_Error: MsgBox(Err.Description)结束Sub