函数定义
定义和调用函数的代码生成
有特殊考虑当您创建MATLAB®用于代码生成功能。当你使用这些包括某些限制变长度输入宗量
和varargout
匿名函数,递归函数和嵌套函数。为MATLAB递归函数生成代码,代码生成器使用编译时递归或运行时递归。产生有效的C / c++代码,代码生成器有时创建多个版本的一个函数,称为功能专门化。在某些情况下,您可以防止代码生成器创建专门化使用函数coder.ignoreConst
和coder.ignoreSize
。生成一个墨西哥人的函数时,您可以绕过代码生成特定的函数,在MATLAB代码和使用MATLAB引擎来执行调用。要做到这一点,使用coder.extrinsic
构造。
功能
coder.extrinsic |
声明一个函数作为外在和执行MATLAB |
coder.ignoreConst |
防止使用常数的表达式值函数的专门化 |
coder.ignoreSize |
防止代码生成器创建功能专门化的大小不变表情 |
coder.sameSizeBinaryOp |
应用element-wise二进制操作没有隐式的扩张 |
coder.noImplicitExpansionInFunction |
禁用隐式扩张在指定的函数生成的代码 |
主题
- 编译指令% # codegen
表明MATLAB函数是用于代码生成。
- 生成代码启用了隐式的扩张
代码生成器在生成的代码中引入了修改完成隐式扩张。
- 在生成的代码优化隐式扩张
隐式扩张在生成的代码中默认情况下是启用的。
- 可变长度参数列表的代码生成
生成的代码
变长度输入宗量
和varargout
。 - 生成代码验证输入参数的参数块
为MATLAB生成代码限制类的代码,输入值大小,和其他方面的功能。
- 递归函数的代码生成
在MATLAB代码使用递归函数用于代码生成。
- 强制代码生成器使用运行时递归
重写你的MATLAB代码,代码生成器使用运行时递归,而不是编译时递归。
- 匿名函数的代码生成
在MATLAB代码使用匿名函数用于代码生成。
- 嵌套函数的代码生成
MATLAB代码中使用嵌套函数用于代码生成。
- 解析函数调用的代码生成
代码生成器使用优先级规则来解决函数调用。
- 分辨率的文件类型代码生成路径
代码生成器使用优先级规则解决文件类型。
- 使用MATLAB引擎来执行一个函数调用生成的代码
如果一个函数不支持代码生成,声明它万博1manbetx外在在MATLAB环境下执行。
故障排除
力循环展开时,代码生成器不能确定指数的值变长度输入宗量
或varargout
。
减少重复的发生函数生成的代码。
解决运行时递归输出变量赋值。
解决编译时递归限制错误。
排除大小不匹配的错误发生在代码生成。