主要内容

编码器。MexCodeConfig

配置参数用于生成MEX功能MATLAB代码

描述

一个编码器。MexCodeConfig对象包含用于codegen在生成MEX函数时使用。将对象传递给codegen函数,使用配置选择。

创建

创建一个编码器。MexCodeConfig对象,使用coder.config函数。

一旦你创建了编码器。MexCodeConfig对象,您可以在命令行以编程方式或使用配置参数对话框以交互方式修改其属性。看到在命令行工作流中交互式地指定配置参数

属性

全部展开

动态数组优化,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

代码生成器通过优化动态数组访问来改进生成的C代码的执行时间。

代码生成器不会优化动态数组访问。

看到优化动态数组访问

生成的代码的代码格式化选项,指定为表中的值之一。

价值 描述
“Clang-format”

类对生成的代码进行格式化clang-format文件。

“汽车”

使用内部启发式来确定生成的代码是否被格式化clang-format或者MathWorks®格式化工具。

来确定所生成的代码是否被格式化clang-format,在coder.config对象,设置冗长选项“详细”

“MathWorks”

使代码生成器恢复到MathWorks格式化工具。

编译时递归的函数特化的最大数目,指定为正整数。在MATLAB中不允许递归®代码,设置CompileTimeRecursionLimit为0。默认的编译时递归限制对于大多数需要这种类型递归的递归函数来说足够大。如果由于编译时递归限制而导致代码生成失败,而您想要编译时递归,请尝试增加限制。或者,更改MATLAB代码,使代码生成器使用运行时递归。看到达到编译时递归限制

常量文件夹执行的最大指令数。在某些情况下,代码生成需要特定的指令保持不变。如果常数折叠在这些指令被常数折叠之前停止,代码生成就会失败。在这种情况下,增加的值ConstantFoldingTimeout

看到生成代码中的MATLAB编码器优化

常量输入检查模式,指定为本表中的值之一。

价值 描述
“CheckValues”

此值为默认值。

在调用MEX函数时,它会检查为常量输入参数提供的值是否为代码生成时指定的值。

可以使用相同的参数调用MEX函数和原始MATLAB函数。因此,您可以对两个函数使用相同的测试文件。

检查这些值会降低MEX函数的执行速度。

“IgnoreValues”

在调用MEX函数时,它会忽略为常量输入参数提供的值。它使用在代码生成时指定的值。

您可以使用相同的测试文件,而无需检查常量参数值的开销。

“删除”

代码生成器从MEX函数签名中删除常量输入参数。在调用MEX函数时,不为常量输入参数提供值。

此选项提供向后兼容性。

看到MEX函数中的常量输入检查

是否生成包含枚举类或普通C枚举的c++ 11代码,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

代码生成器在生成的c++ 11代码中为MATLAB枚举生成枚举类。看到枚举的代码生成

代码生成器在生成的c++ 11代码中为MATLAB枚举生成普通C枚举。

依赖:

  • 设置TargetLang“c++”启用此参数。

是否为MATLAB代码中的包生成c++名称空间,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

代码生成器为MATLAB代码中的包生成c++名称空间。看到将生成的c++代码组织到命名空间中

代码生成器不会为MATLAB代码中的包生成c++名称空间。

依赖:

  • 设置TargetLang“c++”启用此参数。

数据类型:逻辑

生成的c++代码的命名空间。除非指定非空字符向量,否则代码生成器不会在名称空间中生成代码。

看到将生成的c++代码组织到命名空间中

依赖:

  • 设置TargetLang“c++”启用此参数。

为MathWorks代码生成的c++代码的命名空间。如果将此属性指定为空字符向量,则代码生成器不会生成这样的名称空间。

看到将生成的c++代码组织到命名空间中

依赖:

  • 设置TargetLang“c++”启用此参数。

数据类型:字符

是否为MATLAB类生成c++类或C风格结构,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

代码生成器为MATLAB类生成c++类。看到生成MATLAB类的c++类

代码生成器为MATLAB类生成C风格的结构。

当使用GPU Coder™时,代码生成器总是禁用此参数。

依赖:

  • 设置TargetLang“c++”启用此参数。

数据类型:逻辑

出现在从MATLAB代码生成的每个C/ c++头文件顶部附近的自定义代码,除非rtwtypes.h而且rtwhalf.h,指定为字符向量。

在编译生成的代码时要添加到Include路径中的Include文件夹。将包含文件夹列表指定为字符串数组、字符向量的单元格数组或字符向量。

多个文件夹名,指定为此表中的值之一。

价值 描述
字符串数组

中的字符串数组。CustomInclude.例如,cfg。CustomInclude = ["C:\项目","C:\自定义文件"];

字符向量的单元格数组

中字符向量的单元格数组CustomInclude.例如,cfg。CustomInclude = {'C:\项目','C:\自定义文件'};

特征向量

分隔包含文件夹pathsep字符CustomInclude.例如,cfg。CustomInclude = ['C:\项目' pathsep 'C:\自定义文件'];

请注意

在未来的版本中,将不再使用字符向量在代码配置对象中指定多个条目。使用字符向量的字符串数组和单元格数组。有关更多信息,请参见兼容性的考虑

要包含在生成的初始化函数中的自定义代码,指定为字符向量。

与生成的代码链接的静态库文件,指定为字符串数组、单元格数组的字符向量或字符向量。

多个静态库文件名,指定为本表中的值之一。

价值 描述
字符串数组

中的字符串数组。CustomLibrary.例如,cfg。CustomLibrary = ["myLib1.lib","myLib2.lib"];

字符向量的单元格数组

中字符向量的单元格数组CustomLibrary.例如,cfg。CustomLibrary = {'myLib1.lib','myLib2.lib'};

特征向量

分隔静态库文件名pathsep字符CustomLibrary.例如,cfg。CustomLibrary = ['myLib1.]lib' pathsep 'myLib2.lib'];

请注意

在未来的版本中,将不再使用字符向量在代码配置对象中指定多个条目。使用字符向量的字符串数组和单元格数组。有关更多信息,请参见兼容性的考虑

要编译并与生成的代码链接的源文件,指定为字符串数组、字符向量的单元格数组或字符向量。

构建过程首先在当前文件夹中搜索源文件,然后在您指定的包含文件夹中搜索CustomInclude.如果具有相同名称的源文件出现在搜索路径上的多个文件夹中,则构建过程可能使用与您指定的文件不同的文件。

假设你指定foo.cpp作为源文件。如果foo.c而且foo.cpp都在搜索路径上,您无法确定构建过程是否使用foo.cfoo.cpp

多个源文件名,指定为本表中的值之一。

价值 描述
字符串数组

中的字符串数组。CustomSource.例如,cfg。CustomSource = ["mySrc1.c","mySrc2.c"];

字符向量的单元格数组

中字符向量的单元格数组CustomSource.例如,cfg。CustomSource = {'mySrc1.c','mySrc2.c'};

特征向量

用a分隔源文件名pathsep字符CustomSource.例如,cfg。CustomSource = ['mySrc1.c' pathsep 'mySrc2.c'];

请注意

在未来的版本中,将不再使用字符向量在代码配置对象中指定多个条目。使用字符向量的字符串数组和单元格数组。有关更多信息,请参见兼容性的考虑

指定代码以出现在每个生成的代码的顶部附近.c. cpp文件(除了rtwhalf.crtwhalf.cpp),在任何功能之外。将code指定为字符向量。

不要指定C静态函数定义。

出现在生成的终止函数中的代码,指定为字符向量。

深度学习网络代码生成的配置对象,指定为本表中的对象之一。

对象 需要 描述
编码器。MklDNNConfig

  • 深度学习工具箱™

  • MATLAB Coder™接口的深度学习库支持包

一个编码器。MklDNNConfig对象包含特定于使用Intel进行深度学习的c++代码生成的参数®MKL-DNN。要创建编码器。MklDNNConfig对象,使用编码器。DeepLearningConfig.例如:

CFG = code .config(墨西哥人的);cfg。TargetLang =“c++”;cfg。DeepLearningConfig =编码器。DeepLearningConfig (“mkldnn”);

看到基于mml - dnn的深度学习网络代码生成

编码器。CuDNNConfig(GPU编码器)

  • 深度学习工具箱

  • GPU编码器

  • 用于深度学习库的GPU编码器接口支持包

一个编码器。CuDNNConfig对象包含特定于CUDA的参数®使用cuDNN库进行深度学习的代码生成。要创建编码器。CuDNNConfig对象,使用编码器。DeepLearningConfig.例如:

cfg = code . gpuconfig (“自由”);cfg。TargetLang =“c++”;cfg。DeepLearningConfig =编码器。DeepLearningConfig (“cudnn”);

看到基于cuDNN的深度学习网络代码生成(GPU编码器)

编码器。TensorRTConfig(GPU编码器)

  • 深度学习工具箱

  • GPU编码器

  • 用于深度学习库的GPU编码器接口支持包

一个编码器。TensorRTConfig对象包含特定于CUDA代码生成的参数,用于使用TensorRT库进行深度学习。要创建编码器。TensorRTConfig对象,使用编码器。DeepLearningConfig.例如:

cfg = code . gpuconfig (“自由”);cfg。TargetLang =“c++”;cfg。DeepLearningConfig =编码器。DeepLearningConfig (“tensorrt”);

看到基于TensorRT的深度学习网络代码生成(GPU编码器)

请注意

使用ARM进行深度学习时,不支持生成MEX代码®计算库。

依赖:如果DeepLearningConfig是集,codegenTargetLangc++

动态内存分配模式,指定为该表中的一个值。

价值 描述
“阈值”

此值为默认值。

代码生成器在堆上为大小(以字节为单位)大于或等于的可变大小数组动态分配内存DynamicMemoryAllocationThreshold

“AllVariableSizeArrays” 代码生成器动态地为堆上所有可变大小的数组分配内存。
“关闭”

代码生成器静态地为堆栈上的可变大小数组分配内存。

无界可变大小数组需要动态内存分配。

依赖关系:

  • EnableVariableSizing启用此参数。

  • 设置这个DynamicMemoryAllocation“阈值”使DynamicMemoryAllocationThreshold参数。

看到生成可变大小数据的代码

在生成的C/ c++函数的接口上动态分配数组的实现,指定为本表中的值之一。

价值 描述
“汽车”

这是默认值。如果你设置TargetLang参数“c++”“C”,此值对应地表现为相同的标志。

“C”

生成的代码使用C样式emxArray实现动态分配数组的数据结构。看到在生成的函数接口中使用C数组

“c++”

如果你设置TargetLang参数“C”,该值被禁用。

生成的代码使用编码器:数组类模板来实现动态分配的数组。看到在生成的函数接口中使用动态分配的c++数组

当使用GPU Coder时,代码生成器总是使用C风格emxArray数据结构。

依赖:

  • EnableVariableSizing启用此参数。

固定大小和可变大小数组的动态内存分配的大小阈值,指定为正整数。代码生成器对大小(以字节为单位)大于或等于阈值的固定大小和可变大小数组使用动态内存分配。

依赖:

  • 设置DynamicMemoryAllocation“阈值”启用此参数。

看到生成可变大小数据的代码

自动并行化循环,指定为本表中的值之一。

价值 描述

此值为默认值。

代码生成器不会自动并行化循环。

真正的

代码生成器自动并行化生成的代码中的循环。自动并行化可以显著提高生成代码的执行速度。看到自动并行化生成代码中的循环

当使用GPU编码器,代码生成器总是启用自动并行化循环。

数据类型:逻辑

的自动并行化报告循环,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

如果你设置EnableAutoParallelization真正的时,代码生成器生成用于自动并行化的代码生成报告循环

的自动并行化代码生成器不会生成代码生成报告循环。

表达式回显,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

MEX函数显示不以分号结尾的语句的输出。

MEX函数不显示以分号结尾的语句的输出。

此属性不适用于常见的可视化函数,例如disp情节,或数字当它们作为外部函数被调用时。的值,无论是否存在分号或值,MEX函数都显示这些函数的输出EchoExpressions

自动外部函数调用,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

代码生成器将一些常见的可视化函数视为外部函数。您不必将这些函数声明为外部函数coder.extrinsic.此功能减少了使代码适合于代码生成所花费的时间。

代码生成器不会将常见的可视化函数视为外部函数,除非您将它们声明为外部函数coder.extrinsic

一些常见的可视化函数是情节disp,数字.看到使用MATLAB引擎在生成的代码中执行函数调用

C编译器调试模式,指定为本表中的值之一。

价值 描述

此值为默认值。

代码生成器不启用C编译器调试模式。

真正的

代码生成器启用C编译器调试模式。当启用调试模式时,C编译器不会优化代码。编译速度更快,但执行速度更慢。

生成的代码中的隐式扩展功能,指定为本表中列出的值之一。

价值 描述
真正的

此值为默认值。

代码生成器支持在生成的代码中进行隐式展开。代码生成器在生成的代码中包含修改,以应用隐式展开。看到基本操作的兼容数组大小

生成的代码不遵循隐式展开规则。

数据类型:逻辑

即时(JIT)编译模式,指定为该表中的值之一。

价值 描述

此值为默认值。

代码生成器通过生成和编译C/ c++代码来创建C/ c++ MEX函数。

真正的

代码生成器使用即时(JIT)编译技术生成MEX函数。代码生成器创建一个JIT MEX函数,其中包含MATLAB代码的抽象表示。当您运行JIT MEX函数时,MATLAB在内存中生成可执行代码。

为了加快生成MEX函数的速度,请设置EnableJIT真正的

JIT编译与某些代码生成特性和选项不兼容,例如自定义代码或OpenMP库的使用。如果您指定了JIT编译,而代码生成器无法使用它,它将生成一个带有警告的C/ c++ MEX函数。如果EnableJIT而且EnableOpenMP真正的,并且您的代码使用parfor时,代码生成器使用JIT编译并处理parfor循环,循环。

看到通过使用JIT编译加速MEX生成

memcpy优化,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

如果可能,代码生成器使用memcpy优化。若要优化复制连续数组元素的代码,可以使用memcpy优化将代码替换为memcpy调用。当在编译时知道要复制的元素数量时,代码生成器使用MemcpyThreshold属性确定是否使用优化。看到memcpy优化

代码生成器不使用memcpy优化。

当使用GPU编码器时,代码生成器总是禁用的Memcpy优化。

启用生成的MEX函数的分析,该函数指定为本表中的值之一。

价值 描述

此值为默认值。

代码生成器在生成的MEX函数中不包括用于分析的工具。

真正的

代码生成器在生成的MEX函数中包含用于分析的工具。然后,您可以使用MATLAB Profiler来分析MEX。看到利用MATLAB Profiler分析MEX函数

并行化的parfor-loops,指定为该表中的一个值。

价值 描述
真正的

此值为默认值。

如果可能的话,代码生成器使用OpenMP库生成并行运行的循环迭代。

代码生成器处理parfor循环,循环。

看到parfor

OpenMP库的使用与即时(JIT)编译不兼容。如果EnableJIT而且EnableOpenMP真正的,代码生成器使用JIT编译和处理parfor循环,循环。

当使用GPU编码器,代码生成器总是处理parfor循环,循环。

运行时递归支持,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

在生成的代码中允许使用递归函数。

在生成的代码中不允许使用递归函数。

一些编码标准,如MISRA®,不允许递归。增加生成与MISRA C兼容的代码的可能性®,设置EnableRuntimeRecursion

如果你的MATLAB代码需要运行时递归和EnableRuntimeRecursion,代码生成失败。

看到递归函数的代码生成

可变大小的数组支持,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

代码生成允许使用可变大小的数组。

代码生成不允许使用可变大小的数组。

依赖:

  • 使动态内存分配

看到可变大小数组的代码生成

外部函数调用支持,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

对于外部函数,代码生成器生成对MATLAB函数的调用。代码生成器不生成函数的内部代码。

代码生成器忽略外部函数。它不生成调用MATLAB函数的代码。如果外部函数影响MATLAB函数的输出,代码生成器将发出编译错误。

如果你设置ExtrinsicCalls时,生成的MEX函数不能显示来自的运行时消息错误断言你的MATLAB代码中的语句。日志含义MEX功能上报无法显示错误信息。若要查看错误消息,请设置ExtrinsicCalls真正的并重新生成MEX函数。

的价值ExtrinsicCalls影响MEX函数如何为rand生成随机数兰迪,randn.如果ExtrinsicCalls真正的, MEX函数使用MATLAB全局随机数流生成随机数。否则,MEX函数使用一个自包含的随机数生成器。

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

文件分区模式指定为此表中的值之一。

价值 描述
“MapMFileToCFile”

此值为默认值。

代码生成器为每个MATLAB语言文件生成单独的C/ c++文件。

“SingleFile” 代码生成器为映射到MATLAB入口点函数的C/ c++函数生成单个文件。代码生成器为实用函数生成单独的C/ c++文件。

看到MATLAB编码器如何分区生成代码

只生成源代码,指定为此表中的值之一。

价值 描述

此值为默认值。

代码生成器生成C/ c++源代码并构建目标代码。

真正的

代码生成器生成C/ c++源代码,但不调用make命令或构建目标代码。当您在修改MATLAB代码和生成C/ c++代码之间迭代时,只生成代码可以节省时间。

生成的代码中的注释,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

代码生成器在生成的代码中放置注释。

代码生成器不会在生成的代码中放置注释。

代码生成报告,指定为本表中的值之一。

价值 描述

此值为默认值。

代码生成器仅在发生错误或警告消息或设置LaunchReport真正的

真正的 代码生成器生成一个代码生成报告。

全局数据同步模式,指定为本表中的值之一。

价值 全局数据描述 常量全局数据的描述

“SyncAlways”(默认)

此值为默认值。

在MEX函数入口和出口以及外部调用处同步全局数据,以实现MATLAB和生成的MEX函数之间的最大一致性。为最大化性能,如果外部调用不更改全局数据,请将此选项与coder.extrinsic同步:了选项关闭这些调用的同步。

在MEX函数入口处和外部调用后验证常量全局数据的一致性。如果MATLAB全局工作空间中的全局数据值与MEX函数中的编译时常量全局值不一致,则MEX函数将以错误结束。使用coder.extrinsic同步:了选项关闭一致性检查后,特定的外部调用。

“SyncAtEntryAndExits”

仅在MEX函数入口和出口同步全局数据。为最大化性能,如果只有少数外部调用更改全局数据,请使用此选项和coder.extrinsic同步:选项,为这些调用打开同步。

仅在MEX函数入口处验证常量全局数据。如果MATLAB全局工作空间中的全局数据值与MEX函数中的编译时常量全局值不一致,则MEX函数将以错误结束。使用coder.extrinsic同步:选项在特定的外部调用后打开一致性检查。

“NoSync”

禁用同步。在禁用同步之前,请验证MEX函数不与MATLAB全局数据交互。否则,MATLAB和MEX函数之间可能会出现不一致。

禁用一致性检查。

看到为全局数据生成代码

显示潜在的行主布局效率问题,指定为本表中的值之一。

价值 描述
真正的

代码生成报告显示了由于行主布局而导致的潜在效率问题。(此值为默认值。)

代码生成报告不显示与数组布局相关的问题。

看到行-主数组布局代码设计

浮点数和双零的赋值memset,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

如果可能,代码生成器使用memset浮点零分配到连续数组元素的优化。要指定连续的数组元素,可以使用memset优化使用memset调用。当要赋值的元素数量在编译时已知时,代码生成器使用MemcpyThreshold属性确定是否使用优化。看到memset优化

代码生成器不使用memset浮点数和双零分配到连续数组元素的优化。

在MathWorks调用另一个MathWorks函数(指定为本表中的值之一)的所有调用站点上的内联行为。

价值 描述
“速度”

此值为默认值。

使用内部启发式来确定是否在调用站点执行内联。这种设置通常会产生高度优化的代码。

“总是”

总是在调用站点执行内联。

“可读性”

几乎从不内联函数调用,除非调用非常小的函数。尽可能在不牺牲太多速度的情况下保持代码的模块化。结果是高可读性的代码。

“永远”

永远不要内联函数调用。结果是最大的可读性。这种设置可能会显著降低生成代码的性能。

即使你选择了“总是”或者是“永远”选项的设置,在某些情况下,代码生成器可能不会严格遵循该指令。例如,如果存在冲突,则coder.inline(总是)coder.inline(“不”)置于函数体中的指令将覆盖此选项。有关更多信息,请参见不同内联控件之间的交互

看到控制内联以优化生成代码的性能和可读性

在您编写的函数调用MathWorks函数或MathWorks函数调用您编写的函数的所有调用站点上的内联行为。指定为本表中的值之一。

价值 描述
“速度”

此值为默认值。

使用内部启发式来确定是否在调用站点执行内联。这种设置通常会产生高度优化的代码。

“总是”

总是在调用站点执行内联。

“可读性”

几乎从不内联函数调用,除非调用非常小的函数。尽可能在不牺牲太多速度的情况下保持代码的模块化。结果是高可读性的代码。

“永远”

永远不要内联函数调用。结果是最大的可读性。这种设置可能会显著降低生成代码的性能。

即使你选择了“总是”或者是“永远”选项的设置,在某些情况下,代码生成器可能不会严格遵循该指令。例如,如果存在冲突,则coder.inline(总是)coder.inline(“不”)置于函数体中的指令将覆盖此选项。有关更多信息,请参见不同内联控件之间的交互

看到控制内联以优化生成代码的性能和可读性

在您编写的函数调用另一个您编写的函数(指定为本表中的值之一)的所有调用站点上的内联行为。

价值 描述
“速度”

此值为默认值。

使用内部启发式来确定是否在调用站点执行内联。这种设置通常会产生高度优化的代码。

“总是”

总是在调用站点执行内联。

“可读性”

几乎从不内联函数调用,除非调用非常小的函数。尽可能在不牺牲太多速度的情况下保持代码的模块化。结果是高可读性的代码。

“永远”

永远不要内联函数调用。结果是最大的可读性。这种设置可能会显著降低生成代码的性能。

即使你选择了“总是”或者是“永远”选项的设置,在某些情况下,代码生成器可能不会严格遵循该指令。例如,如果存在冲突,则coder.inline(总是)coder.inline(“不”)置于函数体中的指令将覆盖此选项。有关更多信息,请参见不同内联控件之间的交互

看到控制内联以优化生成代码的性能和可读性

内存完整性检查,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

生成的代码检测内存完整性违规,并使用诊断消息停止执行。

生成的代码不会检测内存完整性违规。

设置IntegrityChecks可以提高性能。但是,如果不进行内存完整性检查,就会导致不可预知的行为。集IntegrityChecks只有在验证了数组边界检查和维数检查是不必要的情况下。设置IntegrityChecks还禁用运行时堆栈。

看到控制运行时检查

自动打开生成报告的代码,指定为本表中的值之一。

价值 描述

此值为默认值。

如果发生错误或警告,或者如果GenerateReport真正的时,代码生成器生成报告,但不打开报告。

真正的 代码生成器生成并打开代码生成报告。

在生成的代码中包含MATLAB源代码作为注释,指定为本表中的值之一。

价值 描述

此值为默认值。

代码生成器不会在生成的代码中插入MATLAB源代码作为注释。代码生成器在函数横幅中不包含MATLAB函数签名。

真正的

代码生成器在生成的代码中插入MATLAB源代码作为注释。可追溯性标记立即位于源代码的每一行之前。可追溯性标签帮助您定位相应的MATLAB源代码。看到跟踪生成的C/ c++代码到MATLAB源代码

代码生成器还在函数横幅中包含MATLAB函数签名。

依赖:

  • GenerateComments启用此参数。

看到跟踪生成的C/ c++代码到MATLAB源代码

memcpy或memset优化的最小大小(以字节为单位),指定为正整数。

若要优化复制连续数组元素的生成代码,代码生成器会尝试将代码替换为memcpy调用。为优化将文字常量赋值给连续数组元素的生成代码,代码生成器会尝试将代码替换为memset调用。

字节数是要复制或赋值的数组元素的数量乘以C/ c++数据类型所需的字节数。

如果要复制或赋值的元素数量是可变的(在编译时不知道),代码生成器将忽略MemcpyThreshold财产。

看到memcpy优化而且memset优化

对象名称,指定为字符向量。

并行运行的最大CPU线程数-循环在生成的C/ c++代码中,指定为正整数。

看到在生成的代码中指定并行for循环运行的最大线程数

命令用于自定义生成处理后的MEX功能生成codegen,指定为字符向量。

看到构建过程定制

生成使用n维索引的代码,该索引指定为本表中的值之一。

价值 描述

生成使用一维索引的代码。(此值为默认值。)

真正的 生成使用n维索引的代码。

看到生成使用n维索引的代码

要保存在生成的代码中的变量名,指定为本表中的值之一。

价值 描述
“没有”

此值为默认值。

代码生成器不必保留任何变量名。它可以重用任何满足变量重用要求的变量。

如果您的代码使用大型结构或数组,设置PreserveVariableNames“没有”可以减少内存使用或提高执行速度。

“用户名”

代码生成器保留与MATLAB代码中定义的变量对应的名称。它不会将您的变量名替换为另一个名称,也不会将您的名称用于另一个变量。为了提高可读性,设置PreserveVariableNames“用户名”.然后,您可以更容易地将生成代码中的变量追溯到MATLAB代码中的变量。

设置PreserveVariableNames“用户名”不会阻止优化从生成的代码中删除变量,也不会阻止C/ c++编译器重用生成的二进制代码中的变量。

“所有”

保留所有变量名。该参数值禁止变量重用。只能将其用于测试或调试,而不能用于生产代码。

看到在生成的代码中保留变量名

将有关代码生成的信息导出到其中的变量的名称,指定为字符向量。代码生成器在基本MATLAB工作区中创建此变量。此变量包含有关代码生成设置、输入文件、生成文件和代码生成消息的信息。

看到以编程方式访问代码生成报告信息而且编码器。ReportInfo属性

潜在差异报告,指定为本表中的值之一:

价值 描述
真正的 代码生成器报告生成的代码和MATLAB代码之间的潜在行为差异。代码生成报告的选项卡上列出了潜在的差异。电位差是在运行时仅在某些条件下发生的差。
代码生成器不会报告潜在的差异。

看到潜在差异报告

代码生成器不能用于函数或变量的名称列表,指定为字符串数组、字符向量的单元格数组或字符向量。

多个保留名称,指定为此表中的一个值。

价值 描述
字符串数组

中的字符串数组。ReservedNameArray.例如,cfg。ReservedNameArray = ["reserve1","reserve2","reserve3"]

字符向量的单元格数组

中字符向量的单元格数组ReservedNameArray.例如,cfg。ReservedNameArray = {'reserve1','reserve2','reserve3'}

特征向量

中以分号分隔的保留名称列表ReservedNameArray.例如,cfg。reservenamearray = 'reserve1;reserve2;reserve3'

请注意

在未来的版本中,将不再使用字符向量在代码配置对象中指定多个条目。使用字符向量的字符串数组和单元格数组。有关更多信息,请参见兼容性的考虑

响应性检查,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

你可以使用Ctrl + C停止执行生成的MEX函数。

要结束长时间运行的MEX函数,可能必须终止MATLAB。

当使用GPU编码器时,代码生成器总是禁用此参数。

看到控制运行时检查

生成使用行主数组布局的代码,该布局指定为本表中的值之一。

价值 描述

生成使用列主数组布局的代码。(此值为默认值。)

真正的 生成使用行主数组布局的代码。

看到生成使用行主数组布局的代码

整数溢出支持,指定为本表中的值之一。

价值 描述
真正的

此值为默认值。

代码生成器生成处理整数溢出的代码。溢出饱和到数据类型可以表示的最小值或最大值。

代码生成器不会生成处理整数溢出的代码。不要设置SaturateOnIntegerOverflow除非您确定您的代码不依赖于整数溢出支持。如果禁用整数溢出支持,并且启用了完整性检查,则生成的代码将为溢出生成一个错误。如果禁用整数溢出支持并禁用完整性检查,则溢出行为取决于目标C编译器。在C标准中,整数溢出的行为是未定义的。然而,大多数C编译器在溢出时自动换行。

此参数仅适用于MATLAB内置整数类型。它不适用于双精度、单精度或定点数据类型。

看到禁用对整数溢出或非有限的支持

每个应用程序的最大堆栈使用量(以字节为单位),指定为正整数。设置一个低于可用堆栈大小的限制。否则,可能会发生运行时堆栈溢出。C编译器检测并报告堆栈溢出。

看到控制堆叠空间使用

在生成的代码中使用的语言,指定为“C”“c++”.如果指定c++,代码生成器将C代码包装到.cpp文件中,以便您可以使用c++编译器并与外部c++应用程序进行接口。它不生成c++类。

当使用GPU编码器时,代码生成集TargetLangc++

依赖:如果DeepLearningConfig是集,codegenTargetLangc++

是否在MATLAB命令行中显示代码生成进度的状态,指定为本表中的值之一。

价值 描述
“沉默”

如果代码生成成功而没有警告,则所有消息都将被抑制,包括在生成报告时。

显示警告和错误信息。

“信息”

此值为默认值。

相比之下“沉默”模式,如果代码生成成功,将显示以下附加消息:

  • 代码生成成功

  • 链接到生成的报告(如果有的话)

“详细”

中显示的消息之外“信息”将显示模式、代码生成状态和目标生成日志消息。

例子

全部折叠

编写一个可以生成代码的MATLAB函数。本例使用了该函数myadd返回输入的和。

函数C = myadd(a,b) C = a + b;结束

创建用于生成MEX功能的配置对象。

CFG = code .config(墨西哥人的);

更改不希望使用默认值的属性的值。例如,启用即时(JIT)编译。

cfg。EnableJIT = true;

使用以下命令生成代码codegen.将配置对象传递给codegen通过使用配置选择。指定输入参数为标量双精度。

codegenmyadd配置cfgarg游戏{1}报告

选择功能

如果使用缺省配置参数值生成MEX函数,则不需要创建配置对象,可以调用codegen属性,而不指定配置对象配置:墨西哥人选择。

版本历史

在R2011a中引入

全部展开

Baidu
map