生成一个墨西哥人函数多个签名
一个入口点函数是一个顶级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
与这些输入值产生相同的输出。这些测试用例验证myAdd
和myAdd_mex
有相同的行为。
为多个入口点函数生成多重签名墨西哥人功能
在代码生成,您还可以生成一个墨西哥人函数多个入口点函数包含多个签名。
假设你有两个入口点函数myAdd
和myMul
。第一个入口点函数,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)}
。现在,您可以生成一个墨西哥人从你的入口点函数的功能。
生成的代码myAdd
和myMul
函数,在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函数myAdd
和myMul
与这些输入值产生相同的输出。这些测试用例验证myAdd
,myMul
,生成的墨西哥人的功能myMath
有相同的行为。