主要内容

函数定义

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

在创建MATLAB时,有一些特殊的考虑®用于代码生成的函数。这些包括使用时的某些限制变长度输入宗量而且varargout、递归函数、匿名函数和嵌套函数。为了为MATLAB递归函数生成代码,代码生成器使用编译时递归或运行时递归。为了生成高效的C/ c++代码,代码生成器有时会创建一个函数的多个版本,称为函数专门化。在某些情况下,可以通过使用防止代码生成器创建函数特殊化coder.ignoreConst而且coder.ignoreSize.在生成MEX函数时,可以绕过MATLAB代码中特定函数的代码生成,而是使用MATLAB引擎来执行调用。要做到这一点,请使用coder.extrinsic构造。

功能

coder.extrinsic 将函数声明为外部函数并在内部执行MATLAB
coder.ignoreConst 防止在函数特殊化中使用表达式的常量值
coder.ignoreSize 防止代码生成器为常量表达式创建函数专门化
coder.sameSizeBinaryOp 在没有隐式展开的情况下应用元素二进制操作
coder.noImplicitExpansionInFunction 在生成的代码中的指定函数中禁用隐式展开

主题

故障排除

在for循环中将非常量索引到varargin或varargout

当代码生成器无法确定索引的值时强制展开循环变长度输入宗量varargout

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

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

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

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

达到编译时递归限制

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

解决错误:大小不匹配

排除代码生成期间发生的大小不匹配错误。