生成一个支持多个签名的MEX函数万博1manbetx

入口点函数是顶级的MATLAB®用来生成代码的函数。如果你的入口点函数有输入,你必须指定输入的属性来生成一个MEX函数。在这种情况下,生成的MEX函数只能使用您在代码生成期间指定的入口点函数的签名。

如果您的入口点函数支持多个签名,那么您可以生成一个单独的M万博1manbetxEX函数,而不是为每个签名生成一个单独的MEX函数。生成的MEX函数使用代码生成期间提供的多个签名。

通过使用multisignature MEX功能,您可以:

  • 生成一个支持入口点函数中指定的多个签名的MEX函数。万博1manbetx

  • 减少为入口点函数的每个签名生成和使用单独的MEX函数所涉及的开销。

  • 在生成的MEX函数中实现MATLAB类函数行为。

生成多签名MEX函数

要生成一个多签名的MEX函数,请考虑这个函数myAdd:

函数y = myAdd (a, b)% # codegeny = a + b;结束
假设您想要生成一个MEX函数myAdd这适用于三种不同的数据类型:,int8,向量的双打。指定三个参数为:{1,2},int8 {int8 (2), (3)},{1:10,1:10}

生成代码myAdd函数,在MATLAB命令行运行该函数codegen命令:

codegen配置:墨西哥人myAdd.marg游戏{1,2}arg游戏int8 {int8 (2), (3)}arg游戏{1:10,1:10}报告
该语法生成一个单独的MEX函数myAdd_mex中指定的签名codegen命令。

在命令行,调用生成的MEX函数myAdd_mex。确保您传递的值myAdd_mex属性中指定的输入属性codegen命令。

myAdd_mex (3、4)
ans = 7
int8 myAdd_mex (int8 (5) (6))
11 . a)【句意
myAdd_mex (1:10, 2:11)
ans = 3 5 7 9 11 13 15 17 19 21

运行MATLAB函数myAdd使用这些输入值生成相同的输出。这些测试用例验证了这一点myAddmyAdd_mex有相同的行为。

限制

多签名的MEX生成不支持:万博1manbetx

另请参阅

|

相关的话题