在创建MATLAB时,有一些特殊的注意事项®用于代码生成的函数。这些包括使用时的某些限制变长度输入宗量
和varargout
、递归函数、匿名函数和嵌套函数。为了为MATLAB递归函数生成代码,代码生成器使用编译时递归或运行时递归。为了生成高效的C/ c++代码,代码生成器有时会创建一个函数的多个版本,称为函数专门化。在某些情况下,您可以通过使用coder.ignoreConst
和coder.ignoreSize
.在生成MEX函数时,可以绕过MATLAB代码中特定函数的代码生成,而是使用MATLAB引擎来执行调用。要做到这一点,使用coder.extrinsic
构造。
coder.extrinsic |
将一个函数声明为外部函数并在内部执行它MATLAB |
coder.ignoreConst |
防止在函数专门化中使用表达式的常量值 |
coder.ignoreSize |
防止代码生成器为常量大小的表达式创建函数专门化 |
coder.noImplicitExpansionInFunction |
在生成的代码中禁用指定函数中的隐式展开 |
说明MATLAB函数是用于代码生成的。
生成的代码变长度输入宗量
和varargout
.
在MATLAB代码中使用递归函数,用于代码生成。
重写MATLAB代码,使代码生成器使用运行时递归而不是编译时递归。
在MATLAB代码中使用匿名函数用于代码生成。
在MATLAB代码中使用用于代码生成的嵌套函数。
代码生成器使用优先规则来解析函数调用。
代码生成器使用优先规则解析文件类型。
如果代码生成不支持某个函数,则将其声明为万博1manbetx外在在MATLAB中执行。
在for循环中进入varargin或varargout的索引
当代码生成器无法确定索引into的值时,强制展开循环变长度输入宗量
或varargout
.
在生成的代码中减少重复函数的发生。
排除运行时递归的输出变量赋值问题。
排除编译时递归限制错误。