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