函数定义
定义和调用用于代码生成的函数
在创建MATLAB时,有一些特殊的考虑®用于代码生成的函数。这些包括使用时的某些限制变长度输入宗量
而且varargout
、递归函数、匿名函数和嵌套函数。为了为MATLAB递归函数生成代码,代码生成器使用编译时递归或运行时递归。为了生成高效的C/ c++代码,代码生成器有时会创建一个函数的多个版本,称为函数专门化。在某些情况下,可以通过使用防止代码生成器创建函数特殊化coder.ignoreConst
而且coder.ignoreSize
.在生成MEX函数时,可以绕过MATLAB代码中特定函数的代码生成,而是使用MATLAB引擎来执行调用。要做到这一点,请使用coder.extrinsic
构造。
功能
coder.extrinsic |
声明外部函数 |
coder.ignoreConst |
防止在函数特殊化中使用表达式的常量值 |
coder.ignoreSize |
防止代码生成器为常量表达式创建函数专门化 |
主题
指示MATLAB函数用于代码生成。
为变长度输入宗量
而且varargout
.
在MATLAB代码中使用递归函数,用于代码生成。
重写MATLAB代码,使代码生成器使用运行时递归而不是编译时递归。
在MATLAB代码中使用匿名函数用于代码生成。
使用MATLAB代码中用于代码生成的嵌套函数。
代码生成器使用优先级规则来解析函数调用。
代码生成器使用优先级规则来解析文件类型。
当代码生成不支持某个函数时,将该函数声明为外部函数。金宝app
故障排除
在for循环中将非常量索引到varargin或varargout
当代码生成器无法确定索引的值时强制展开循环变长度输入宗量
或varargout
.
减少生成代码中重复函数的出现。
解决运行时递归的输出变量分配问题。
排除编译时递归限制错误。