主要内容

函数定义

定义和调用用于代码生成的函数

创建MATLAB时有一些特殊的注意事项®用于代码生成的函数。这些函数包括使用时的某些限制瓦拉金瓦拉戈特、递归函数、匿名函数和嵌套函数。为了生成MATLAB递归函数的代码,代码生成器使用编译时递归或运行时递归。为了生成高效的C/C++代码,代码生成器有时会创建一个函数的多个版本,称为函数专门化。在某些情况下,您可以使用coder.ignoreConst编码器。生成MEX函数时,您可以在MATLAB代码中绕过特定函数的代码生成,而是使用MATLAB引擎执行调用。为此,请使用外部编码器建筑

功能

外部编码器 将函数声明为外部函数并在中执行MATLAB
coder.ignoreConst 防止对函数专门化使用表达式的常量值
编码器 防止代码生成器为常量大小表达式创建函数专用化
coder.noImplicitExpansionInFunction 在生成的代码中的指定函数内禁用隐式扩展

话题

编译指令%#codegen

指示MATLAB函数用于代码生成。

可变长度参数列表的代码生成

为生成代码瓦拉金瓦拉戈特.

递归函数的代码生成

在用于代码生成的MATLAB代码中使用递归函数。

强制代码生成器使用运行时递归

重写MATLAB代码,使代码生成器使用运行时递归而不是编译时递归。

匿名函数的代码生成

在用于代码生成的MATLAB代码中使用匿名函数。

嵌套函数的代码生成

在用于代码生成的MATLAB代码中使用嵌套函数。

代码生成的函数调用解析

代码生成器使用优先规则来解析函数调用。

代码生成路径上文件类型的解析

代码生成器使用优先规则解析文件类型。

使用MATLAB引擎在生成的代码中执行函数调用

如果代码生成不支持函数,请将其声明为金宝app外在的在MATLAB中执行。

故障排除

for循环中varargin或varargout的非恒定索引

当代码生成器无法确定索引的值时,强制循环展开瓦拉金瓦拉戈特.

避免在生成的代码中重复函数

减少生成代码中重复函数的出现。

必须在运行时递归调用之前分配输出变量

运行时递归的输出变量分配疑难解答。

已达到编译时递归限制

编译时递归限制错误的疑难解答。