主要内容

函数定义

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

创建MATLAB时存在特殊考虑因素®用于代码生成的函数。这些包括使用时的某些限制varargin.varargout.,递归函数,匿名函数和嵌套函数。要为MATLAB递归函数生成代码,代码生成器使用编译时间递归或运行时递归。要生成高效的C / C ++代码,代码生成器有时会创建多个函数版本,称为函数专用。在某些情况下,您可以通过使用来阻止代码生成器创建功能专用Coder.ignoreConst.编码器.ignolatize.。在生成MEX函数时,您可以在MATLAB代码中绕过特定功能的代码生成,而是使用MATLAB引擎执行呼叫。为此,使用编码器.Extrinsic.构造。

功能

编码器.Extrinsic. 将功能声明为外在并执行它马铃薯
Coder.ignoreConst. 防止使用表达式的恒定值为功能专业
编码器.ignolatize. 防止代码生成器创建常量大小表达式的功能专业

话题

编译指令%#codegen

表示MATLAB功能适用于代码生成。

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

生成代码varargin.varargout.

递归函数的代码生成

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

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

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

代码生成匿名函数

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

嵌套函数的代码生成

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

用于代码生成的函数调用的分辨率

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

代码生成路径上的文件类型分辨率

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

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

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

故障排除

不合适的索引进入varargin或for-loop中的varargout

当代码生成器无法确定索引的值时,强制循环展开varargin.要么varargout.

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

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

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

解决运行时递归的输出变量分配问题。

达到编译时间递归限制

故障排除编译时递归限制错误。