主要内容

生成一个墨西哥人函数多个签名

一个入口点函数是一个顶级MATLAB®您生成代码的函数。如果你的入口点函数的输入,您必须指定的属性输入生成一个墨西哥人的功能。在这种情况下,生成的墨西哥人的签名函数只适用期间您所指定的入口点函数,代码生成。

如果你的入口点函数支持多个签名,您可以生成一个墨西哥人函数金宝app而不是生成一个单独的墨西哥人函数为每一个签名。墨西哥人函数生成使用代码生成期间提供的多个签名。

通过使用多重签名墨西哥人功能,您可以:

  • 生成一个墨西哥人功能,支持多个签名中指定入口点函数。金宝app

  • 减少生成和使用独立的墨西哥人的开销函数为每个入口点函数的签名。

  • 实现MATLAB函数行为生成的墨西哥人的功能。

为一个单一的入口点函数生成多重签名墨西哥人功能

生成一个多重签名墨西哥人函数,考虑这个函数myAdd:

函数y = myAdd (a, b)% # codegeny = a + b;结束
假设您希望生成一个墨西哥人功能myAdd使用三种不同的数据类型:,int8,向量的双打。指定了三个参数:{1,2},int8 {int8 (2), (3)},{1:10,1:10}。你指定的入口点函数了arg游戏每个入口点函数的签名。

生成的代码myAdd函数,在MATLAB命令提示符下,运行codegen命令:

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

在命令提示符下,调用函数生成的墨西哥人myAdd_mex。确保您传递的值myAdd_mex匹配输入属性中指定的codegen命令。

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

运行MATLAB函数myAdd与这些输入值产生相同的输出。这些测试用例验证myAddmyAdd_mex有相同的行为。

为多个入口点函数生成多重签名墨西哥人功能

在代码生成,您还可以生成一个墨西哥人函数多个入口点函数包含多个签名。

假设你有两个入口点函数myAddmyMul。第一个入口点函数,myAdd返回两个值的总和:

函数y = myAdd (a, b)% # codegeny = a + b;结束

第二个入口点函数,myMul返回两个值的乘积:

函数y = myMul (a, b)% # codegeny = a * b;结束

你指定的入口点函数了arg游戏每个入口点函数的签名。考虑到功能myAdd金宝app支持输入类型int8。指定这些参数为:{1,2}{int8 (1) int8 (2)}。同样,如果函数myMul金宝app支持输入类型int16这些参数指定为:{1,2}{int16 (1) int16 (2)}。现在,您可以生成一个墨西哥人从你的入口点函数的功能。

生成的代码myAddmyMul函数,在MATLAB命令提示符下,运行codegen命令:

codegen配置:墨西哥人myAdd.marg游戏{1,2}arg游戏{int8 (1) int8 (2)}myMul.marg游戏{1,2}arg游戏{int16 (1) int16 (2)}- o“myMath”报告

这个语法生成一个墨西哥人的功能myMath中指定的所有签名codegen命令。

您可以验证输出值通过使用生成的墨西哥人的功能myMath在命令提示符。确保您传递的值myMath匹配指定的输入属性在代码生成。

myMath (“myAdd”、3、4)
ans = 7
myMath (“myAdd”int8 (5) int8 (6))
ans =int811
myMath (“myMul”、3、4)
ans = 12
myMath (“myMul”int16 (5) int16 (6))
ans =int1630.

运行MATLAB函数myAddmyMul与这些输入值产生相同的输出。这些测试用例验证myAdd,myMul,生成的墨西哥人的功能myMath有相同的行为。

限制

多重签名墨西哥人一代不支持:金宝app

另请参阅

|

相关的话题