创建MATLAB时有一些特殊的注意事项®用于代码生成的函数。这些函数包括使用时的某些限制瓦拉金
和瓦拉戈特
、递归函数、匿名函数和嵌套函数。为了生成MATLAB递归函数的代码,代码生成器使用编译时递归或运行时递归。为了生成高效的C/C++代码,代码生成器有时会创建一个函数的多个版本,称为函数专门化。在某些情况下,您可以使用coder.ignoreConst
和编码器
。生成MEX函数时,您可以在MATLAB代码中绕过特定函数的代码生成,而是使用MATLAB引擎执行调用。为此,请使用外部编码器
建筑
外部编码器 |
将函数声明为外部函数并在中执行MATLAB |
coder.ignoreConst |
防止对函数专门化使用表达式的常量值 |
编码器 |
防止代码生成器为常量大小表达式创建函数专用化 |
coder.noImplicitExpansionInFunction |
在生成的代码中的指定函数内禁用隐式扩展 |
指示MATLAB函数用于代码生成。
为生成代码瓦拉金
和瓦拉戈特
.
在用于代码生成的MATLAB代码中使用递归函数。
重写MATLAB代码,使代码生成器使用运行时递归而不是编译时递归。
在用于代码生成的MATLAB代码中使用匿名函数。
在用于代码生成的MATLAB代码中使用嵌套函数。
代码生成器使用优先规则来解析函数调用。
代码生成器使用优先规则解析文件类型。
如果代码生成不支持函数,请将其声明为金宝app外在的在MATLAB中执行。
for循环中varargin或varargout的非恒定索引
当代码生成器无法确定索引的值时,强制循环展开瓦拉金
或瓦拉戈特
.
减少生成代码中重复函数的出现。
运行时递归的输出变量分配疑难解答。
编译时递归限制错误的疑难解答。