MATLAB Compiler SDK 生成的接口
MATLAB® Compiler SDK™ 根据 MATLAB 函数签名为 .NET 程序集中的每个 MATLAB 函数生成一个或多个 API。
单输出 API
对于 .NET 程序集中的每个 MATLAB 函数,MATLAB Compiler SDK 都会生成一个包装器类,该类具有重载方法来实现各种形式的通用 MATLAB 函数调用。MATLAB 函数的单输出 API 返回单个 MWArray。
通常,您对返回单个参量的 MATLAB 函数使用单输出接口。当您想使用一个函数的输出作为另一个函数的输入时,也可以使用单输出接口。
下表显示了通用函数 foo 以及编译器为其几种形式生成的单个输出 API。
| 通用 MATLAB 函数 | function [Out1, Out2, ..., varargout] = foo(In1, In2, ..., InN, varargin) |
| 没有输入参量时的 API | public MWArray foo() |
| 如果有一个或多个输入参量 | public MWArray foo(MWArray In1, |
| 如果有可选输入参量,则使用 API | public MWArray foo(MWArray In1, MWArray In2, ..., |
在示例中,输入参量 In1, In2 和 inN 属于 MWArray 类型。
类似地,对于可选参量,params 参量的类型为 MWArray。(varargin 参量类似于 MATLAB 中的 varargin 函数 - 它允许用户传递可变数量的参量。)
注意
在 .NET 应用程序中调用类方法时,请首先指定所有必需的输入,然后指定任何可选参量。
具有单个整数输入的函数需要显式转换为 MWNumericArray 类型,以区分方法签名和没有输入参量的标准接口签名。
标准 API
通常,您使用返回多个输出值的 MATLAB 函数的标准接口。
标准调用接口返回的是 MWArray 数组,而不是单个数组对象。
下表显示了具有零个、一个、多个或可变数量参量的泛型函数的标准 API。
| 通用 MATLAB 函数 | function [Out1, Out2, ..., varargout] = foo(In1, In2, ..., InN, varargin) |
| 没有输入参量时的 API | public MWArray[] foo(int numArgsOut) |
| 有一个输入参量时的 API | public MWArray [] foo(int numArgsOut, MWArray In1) |
有两个到 N 个输入参量时的 API | public MWArray[] foo(int numArgsOut, MWArray In1,MWArray In2, \... MWArray InN) |
有可选参量时的 API,用 varargin 参量表示 | public MWArray[] foo(int numArgsOut,MWArray in1,MWArray in2, MWArray InN, params MWArray[] varargin) |
这些标准签名样本的参量的详细信息如下表所示。
| 参量 | 描述 | 详细信息 |
|---|---|---|
numArgsOut | 输出的数目 | 一个整数,表示您希望该方法返回的输出数量。
|
In1, In2, ...InN | 必需的输入参量 | 参量列表中 首先指定所有必需的输入。每个必需输入必须是 |
varargin | 可选输入 | 如果您的 MATLAB 代码使用 |
Out1, Out2, ...OutN | 输出参量 | 使用标准调用接口,所有输出参量都作为 |
feval API
除了单一 API 和标准 API 中的方法外,大多数情况下,MATLAB Compiler SDK 产品还会生成额外的重载方法。如果原始 MATLAB 代码不包含输出参量,则编译器将不会生成 feval 方法接口。
考虑具有以下结构的函数:
function [Out1, Out2, ..., varargout] = foo(In1, In2, ..., InN, varargin)
编译器生成以下 API,称为 feval 接口。
public void foo
(int numArgsOut,
ref MWArray [] ArgsOut,
MWArray[] ArgsIn)
该接口接受以下参量:
numArgsOut | 输出的数目 | 一个整数,表示您想要返回的输出数量。 该数字通常与后面的输出参量的数量相匹配。如果存在的话, |
ref MWArray [] ArgsOut | 输出参量 |
所有输出参量前面都有一个 |
MWArray[] ArgsIn | 输入参量 |
当您传递 |