主要内容

函数定义

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

在创建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

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

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

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

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

达到编译时递归限制

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