编码器。MexCodeConfig
用于生成MEX函数的配置参数MATLAB代码
描述
一个编码器。MexCodeConfig
对象包含配置参数codegen
在生成MEX函数时使用。将对象传递给codegen
函数,使用配置
选择。
创建
创建一个编码器。MexCodeConfig
对象。coder.config
函数。
一旦你创建了编码器。MexCodeConfig
对象时,可以在命令行以编程方式修改其属性,也可以使用“配置参数”对话框以交互方式修改其属性。看到在命令行工作流中交互式指定配置参数.
属性
CacheDynamicArrayDataPointer
- - - - - -动态阵列优化
真正的
(默认)|假
CodeFormattingTool
- - - - - -生成代码的格式化工具
“汽车”
(默认)|“Clang-format”
|“MathWorks”
生成代码的代码格式选项,指定为表中的值之一。
价值 | 描述 |
---|---|
“Clang-format” |
代码生成器根据a格式化生成的代码 |
“汽车” |
使用内部启发式方法确定生成的代码是否由 来确定生成的代码是否由 |
“MathWorks” |
导致代码生成器恢复到MathWorks格式化工具。 |
CompileTimeRecursionLimit
- - - - - -编译时递归的函数特化的最大数目
50(默认)|正整数
编译时递归的函数专门化的最大数目,指定为正整数。在MATLAB中禁止递归®代码,设置CompileTimeRecursionLimit
为0。默认的编译时递归限制对于大多数需要这种递归的递归函数来说足够大。如果由于编译时递归限制而导致代码生成失败,并且您希望进行编译时递归,请尝试增加该限制。或者,更改您的MATLAB代码,以便代码生成器使用运行时递归。看到达到编译时递归限制.
ConstantFoldingTimeout
- - - - - -常量文件夹要执行的最大指令数
40000(默认)|正整数
常量文件夹执行的最大指令数。在某些情况下,代码生成需要特定的指令保持不变。如果常量折叠在这些指令被常量折叠之前停止,代码生成就会失败。在本例中,增加的值ConstantFoldingTimeout
.
ConstantInputs
- - - - - -恒定输入校验模式
“CheckValues”
(默认)|“IgnoreValues”
|“删除”
恒定输入检查模式,指定为该表中的值之一。
价值 | 描述 |
---|---|
“CheckValues” |
该值为默认值。 当您调用MEX函数时,它会检查您为常量输入参数提供的值是否与代码生成时指定的值相同。 您可以使用相同的参数调用MEX函数和原始MATLAB函数。因此,您可以对这两个函数使用相同的测试文件。 检查这些值会减慢MEX函数的执行速度。 |
“IgnoreValues” |
在调用MEX函数时,它会忽略为常量输入参数提供的值。它使用在代码生成时指定的值。 您可以使用相同的测试文件,而无需检查常量参数值的开销。 |
“删除” |
代码生成器从MEX函数签名中删除常量输入参数。在调用MEX函数时,不需要为常量输入参数提供值。 此选项提供向后兼容性。 |
CppGenerateEnumClass
- - - - - -生成c++ 11枚举类,用于MATLAB枚举
真正的
(默认)|假
是否生成包含枚举类或普通C枚举的c++ 11代码,指定为该表中的一个值。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 代码生成器在生成的c++ 11代码中为MATLAB枚举生成枚举类。看到枚举的代码生成. |
假 |
代码生成器为生成的c++ 11代码中的MATLAB枚举生成普通的C枚举。 |
依赖:
设置
TargetLang
来“c++”
启用此参数。
CppPackagesToNamespaces
- - - - - -为MATLAB包生成c++命名空间
真正的
(默认)|假
是否为您的MATLAB代码中的包生成c++命名空间,指定为该表中的值之一。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 代码生成器为MATLAB代码中的包生成c++名称空间。看到将生成的c++代码组织到命名空间中. |
假 |
代码生成器不会为MATLAB代码中的包生成c++名称空间。 |
依赖:
设置
TargetLang
来“c++”
启用此参数。
数据类型:逻辑
CppNamespace
- - - - - -生成的c++代码的命名空间名称
”
(默认)|特征向量
CppNamespaceForMathworksCode
- - - - - -将为MathWorks代码生成的c++代码放在一个单独的名称空间中
“编码器”
(默认)|特征向量
命名空间,用于为MathWorks代码生成的c++代码。如果将此属性指定为空字符向量,则代码生成器不会生成这样的名称空间。
依赖:
设置
TargetLang
来“c++”
启用此参数。
数据类型:字符
CppPreserveClasses
- - - - - -为MATLAB类生成c++类
真正的
(默认)|假
为MATLAB类生成c++类还是C风格结构,指定为该表中的值之一。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 代码生成器为MATLAB类生成c++类。看到为MATLAB类生成c++类. |
假 |
代码生成器为MATLAB类生成C风格的结构。 |
当使用GPU Coder™时,代码生成器总是禁用此参数。
依赖:
设置
TargetLang
来“c++”
启用此参数。
数据类型:逻辑
CustomHeaderCode
- - - - - -出现在生成的C/ c++头文件顶部的自定义代码
' '(默认)|特征向量
从MATLAB代码生成的每个C/ c++头文件的顶部附近出现的自定义代码,除了rtwtypes.h
和rtwhalf.h
,指定为字符向量。
CustomInclude
- - - - - -包含要添加的文件夹,以包含编译生成代码的路径
' '(默认)|字符串数组|字符向量的单元数组|特征向量
包含要在编译生成的代码时添加到包含路径中的文件夹。将包含文件夹的列表指定为字符串数组、字符向量的单元格数组或字符向量。
多个文件夹名称,指定为该表中的值之一。
价值 | 描述 |
---|---|
字符串数组 | 中的字符串数组 |
字符向量的单元数组 | 字符向量的单元数组 |
特征向量 | 用。分隔包含文件夹 请注意 通过使用字符向量在代码配置对象中指定多个条目将在未来的版本中删除。使用字符向量的字符串数组和单元数组代替。有关更多信息,请参见兼容性的考虑. |
CustomInitializer
- - - - - -要包含在生成的初始化函数中的自定义代码
' '(默认)|特征向量
要包含在生成的初始化函数中的自定义代码,指定为字符向量。
CustomLibrary
- - - - - -要链接到生成的代码的静态库文件
' '(默认)|字符串数组|字符向量的单元数组|特征向量
要与生成的代码链接的静态库文件,指定为字符串数组、字符向量的单元格数组或字符向量。
多个静态库文件名,指定为该表中的值之一。
价值 | 描述 |
---|---|
字符串数组 | 中的字符串数组 |
字符向量的单元数组 | 字符向量的单元数组 |
特征向量 | 分隔静态库文件名 请注意 通过使用字符向量在代码配置对象中指定多个条目将在未来的版本中删除。使用字符向量的字符串数组和单元数组代替。有关更多信息,请参见兼容性的考虑. |
CustomSource
- - - - - -要编译的源文件并与生成的代码链接
' '(默认)|字符串数组|字符向量的单元数组|特征向量
要编译的源文件并与生成的代码链接,指定为字符串数组、字符向量的单元数组或字符向量。
构建过程首先在当前文件夹中搜索源文件,然后在指定的包含文件夹中搜索CustomInclude
.如果具有相同名称的源文件出现在搜索路径上的多个文件夹中,则构建过程可能使用与您指定的文件不同的文件。
假设你指定foo.cpp
作为源文件。如果foo.c
和foo.cpp
都在搜索路径上时,您无法确定构建过程是否使用foo.c
或foo.cpp
.
多个源文件名,指定为该表中的值之一。
价值 | 描述 |
---|---|
字符串数组 | 中的字符串数组 |
字符向量的单元数组 | 字符向量的单元数组 |
特征向量 | 用。分隔源文件名 请注意 通过使用字符向量在代码配置对象中指定多个条目将在未来的版本中删除。使用字符向量的字符串数组和单元数组代替。有关更多信息,请参见兼容性的考虑. |
CustomSourceCode
- - - - - -的顶部附近显示的代码.c
或. cpp
文件
' '(默认)|特征向量
指定要显示在每个生成的顶部附近的代码.c
或. cpp
文件(除了rtwhalf.c
或rtwhalf.cpp
),在任何函数之外。将代码指定为字符向量。
不要指定C静态函数定义。
CustomTerminator
- - - - - -在生成的终止函数中出现的代码
' '(默认)|特征向量
在生成的终止函数中出现的代码,指定为字符向量。
DeepLearningConfig
- - - - - -用于深度学习代码生成的配置对象
编码器。MklDNNConfig
对象|编码器。CuDNNConfig
对象|编码器。TensorRTConfig
对象
深度学习网络代码生成的配置对象,指定为本表中指定的对象之一。
对象 | 需要 | 描述 |
---|---|---|
编码器。MklDNNConfig |
|
一个 CFG = coder.config(墨西哥人的);cfg。TargetLang =“c++”;cfg。DeepLearningConfig =编码器。DeepLearningConfig (“mkldnn”); |
编码器。CuDNNConfig (GPU编码器) |
|
一个 . cfg = code . gpuconfig (“自由”);cfg。TargetLang =“c++”;cfg。DeepLearningConfig =编码器。DeepLearningConfig (“cudnn”); 看到基于cuDNN的深度学习网络代码生成(GPU编码器). |
编码器。TensorRTConfig (GPU编码器) |
|
一个 . cfg = code . gpuconfig (“自由”);cfg。TargetLang =“c++”;cfg。DeepLearningConfig =编码器。DeepLearningConfig (“tensorrt”); 看到使用TensorRT生成深度学习网络的代码(GPU编码器). |
请注意
使用ARM的深度学习不支持MEX代码生成金宝app®计算库。
依赖:如果DeepLearningConfig
是集,codegen
集TargetLang
来c++
.
DynamicMemoryAllocation
- - - - - -动态内存分配模式
“阈值”
(默认)|“AllVariableSizeArrays”
|“关闭”
动态内存分配模式,指定为该表中的值之一。
价值 | 描述 |
---|---|
“阈值” |
该值为默认值。 代码生成器在堆上动态地为大小(以字节计)大于或等于的可变大小数组分配内存 |
“AllVariableSizeArrays” |
代码生成器动态地为堆上的所有可变大小数组分配内存。 |
“关闭” |
代码生成器静态地为堆栈上的可变大小数组分配内存。 |
无界可变大小数组需要动态内存分配。
依赖关系:
EnableVariableSizing
启用此参数。设置这个
DynamicMemoryAllocation
来“阈值”
使DynamicMemoryAllocationThreshold
参数。
看到生成可变大小数据的代码.
DynamicMemoryAllocationInterface
- - - - - -在生成的函数接口上动态分配数组
“汽车”
(默认)|“C”
|“c++”
在生成的C/ c++函数的接口上实现动态分配的数组,指定为该表中的值之一。
价值 | 描述 |
---|---|
“汽车” |
这是默认值。如果你设置 |
“C” |
生成的代码使用C风格 |
“c++” |
如果你设置 生成的代码使用 |
当使用GPU Coder时,代码生成器总是使用C风格emxArray
数据结构。
依赖:
EnableVariableSizing
启用此参数。
DynamicMemoryAllocationThreshold
- - - - - -可变大小数组动态内存分配的大小阈值
65536
(默认)|正整数
固定大小和可变大小数组的动态内存分配的大小阈值,指定为正整数。对于大小(以字节为单位)大于或等于阈值的固定大小和可变大小的数组,代码生成器使用动态内存分配。
依赖:
设置
DynamicMemoryAllocation
来“阈值”
启用此参数。
看到生成可变大小数据的代码.
EnableAutoParallelization
- - - - - -的自动并行化为
循环
假
(默认)|真正的
的自动并行化为
循环,指定为该表中的值之一。
价值 | 描述 |
---|---|
假 |
该值为默认值。 代码生成器不会自动并行化 |
真正的 |
代码生成器自动并行化 |
当使用GPU Coder时,代码生成器总是启用自动并行化为
循环。
数据类型:逻辑
EnableAutoParallelizationReporting
- - - - - -的自动并行化报告为
循环
真正的
(默认)|假
的自动并行化报告为
循环,指定为该表中的值之一。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 如果你设置 |
假 |
代码生成器不会生成用于自动并行化的代码生成报告为 循环。 |
EchoExpressions
- - - - - -表达呼应
真正的
(默认)|假
表达式回显,指定为该表中的值之一。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 MEX函数显示不以分号结束的语句的输出。 |
假 |
MEX函数不显示不以分号结束的语句的输出。 |
此属性不适用于常见的可视化函数,例如disp
,情节
,或数字
当它们作为外在函数被调用时。无论是否存在分号或的值,MEX函数都会显示这些函数的输出EchoExpressions
.
EnableAutoExtrinsicCalls
- - - - - -自动外部函数调用
真正的
(默认)|假
自动外部函数调用,指定为该表中的值之一。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 代码生成器将一些常见的可视化函数视为外部函数。您不必通过使用将这些函数声明为外部函数 |
假 |
代码生成器不会将常见的可视化函数视为外部函数,除非您使用coder.extrinsic . |
一些常见的可视化函数有情节
,disp
,数字
.看到使用MATLAB引擎在生成的代码中执行函数调用.
EnableDebugging
- - - - - -C编译器调试模式
假
(默认)|真正的
C编译器调试模式,指定为该表中的值之一。
价值 | 描述 |
---|---|
假 |
该值为默认值。 代码生成器不启用C编译器调试模式。 |
真正的 |
代码生成器启用C编译器调试模式。当启用调试模式时,C编译器不会优化代码。编译更快,但执行更慢。 |
EnableImplicitExpansion
- - - - - -生成代码中的隐式扩展功能
真正的
(默认)|假
生成代码中的隐式扩展功能,指定为该表中列出的值之一。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 代码生成器支持在生成的代码中隐式展开。代码生成器在生成的代码中包含用于应用隐式展开的修改。看到基本操作的兼容数组大小. |
假 |
生成的代码不遵循隐式展开的规则。 |
数据类型:逻辑
EnableJIT
- - - - - -即时(JIT)编译模式
假
(默认)|真正的
即时(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
循环,为
循环。
EnableMemcpy
- - - - - -memcpy
优化
真正的
(默认)|假
memcpy
优化,指定为该表中的值之一。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 如果可能,代码生成器将使用 |
假 |
代码生成器不使用 |
当使用GPU编码器时,代码生成器总是禁用Memcpy
优化。
EnableMexProfiling
- - - - - -用于分析的工具
假
(默认)|真正的
启用生成的MEX函数的概要分析,指定为该表中的值之一。
价值 | 描述 |
---|---|
假 |
该值为默认值。 代码生成器在生成的MEX函数中不包括用于分析的工具。 |
真正的 |
代码生成器在生成的MEX函数中包含用于分析的工具。然后,您可以使用MATLAB Profiler来分析MEX。看到用MATLAB分析器分析MEX函数. |
EnableOpenMP
- - - - - -并行化的parfor
循环
真正的
(默认)|假
并行化的parfor
-loops,指定为该表中的值之一。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 如果可能的话,代码生成器将使用OpenMP库生成并行运行的循环迭代。 |
假 |
代码生成器处理 |
看到parfor
.
OpenMP库的使用与即时(JIT)编译不兼容。如果EnableJIT
和EnableOpenMP
是真正的
,代码生成器使用JIT编译并处理parfor
循环,为
循环。
当使用GPU编码器时,代码生成器总是处理parfor
循环,为
循环。
EnableRuntimeRecursion
- - - - - -运行时递归支持金宝app
真正的
(默认)|假
运行时递归支持,指定为该表中的一个值。金宝app
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 在生成的代码中允许使用递归函数。 |
假 |
生成的代码中不允许使用递归函数。 |
一些编码标准,如MISRA®,不允许递归。增加生成与MISRA C兼容的代码的可能性®,设置EnableRuntimeRecursion
来假
.
如果您的MATLAB代码需要运行时递归和EnableRuntimeRecursion
是假
,代码生成失败。
看到递归函数的代码生成.
EnableVariableSizing
- - - - - -可变大小的数组支持金宝app
真正的
(默认)|假
可变大小的数组支持,指定为该表中的值之一金宝app。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 允许在代码生成时使用可变大小的数组。 |
假 |
可变大小的数组不允许用于代码生成。 |
依赖:
使
动态内存分配
.
看到可变大小数组的代码生成.
ExtrinsicCalls
- - - - - -外部函数调用支持金宝app
真正的
(默认)|假
外部函数调用支持,指定为该表中的值之一。金宝app
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 对于外部函数,代码生成器生成对MATLAB函数的调用。代码生成器不生成函数的内部代码。 |
假 |
代码生成器忽略外部函数。它不生成调用MATLAB函数的代码。如果外部函数影响MATLAB函数的输出,代码生成器将发出编译错误。 如果你设置 |
的价值ExtrinsicCalls
影响MEX函数为rand生成随机数的方式,
兰迪
,randn
.如果ExtrinsicCalls
是真正的
, MEX函数使用MATLAB全局随机数流生成随机数。否则,MEX函数将使用一个自包含的随机数生成器。
FilePartitionMethod
- - - - - -文件分区模式
“MapMFileToCFile”
(默认)|“SingleFile”
文件分区模式指定为该表中的值之一。
价值 | 描述 |
---|---|
“MapMFileToCFile” |
该值为默认值。 代码生成器为每个MATLAB语言文件生成单独的C/ c++文件。 |
“SingleFile” |
代码生成器为映射到MATLAB入口点函数的C/ c++函数生成单个文件。代码生成器为实用程序函数生成单独的C/ c++文件。 |
GenCodeOnly
- - - - - -只生成源代码
假
(默认)|真正的
仅生成源代码,指定为该表中的值之一。
价值 | 描述 |
---|---|
假 |
该值为默认值。 代码生成器生成C/ c++源代码并构建目标代码。 |
真正的 |
代码生成器生成C/ c++源代码,但不调用make命令或构建目标代码。当您在修改MATLAB代码和生成C/ c++代码之间进行迭代时,只生成代码可以节省时间。 |
GenerateComments
- - - - - -生成代码中的注释
真正的
(默认)|假
生成代码中的注释,指定为该表中的值之一。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 代码生成器在生成的代码中放置注释。 |
假 |
代码生成器不会在生成的代码中放置注释。 |
GenerateReport
- - - - - -代码生成报告
假
(默认)|真正的
代码生成报告,指定为该表中的值之一。
价值 | 描述 |
---|---|
假 |
该值为默认值。 代码生成器仅在出现错误或警告消息时,或者在设置时生成报告 |
真正的 |
代码生成器生成代码生成报告。 |
GlobalDataSyncMethod
- - - - - -全局数据同步模式
“SyncAlways”
(默认)|“SyncAtEntryAndExits”
|“NoSync”
全局数据同步模式,指定为该表中的值之一。
价值 | 全球数据描述 | 常量全局数据的描述 |
---|---|---|
|
该值为默认值。 同步MEX函数入口和出口以及外部调用的全局数据,以实现MATLAB与生成的MEX函数之间的最大一致性。要最大化性能,如果外部调用不更改全局数据,则将此选项与 |
在MEX函数入口和外部调用之后验证常量全局数据的一致性。如果MATLAB全局工作空间中的全局数据值与MEX函数中的编译时常量全局值不一致,则MEX函数以错误结束。使用 |
|
仅在MEX函数入口和出口处同步全局数据。要最大化性能,如果只有少数外部调用更改全局数据,请将此选项与 |
仅在MEX函数入口验证常量全局数据。如果MATLAB全局工作空间中的全局数据值与MEX函数中的编译时常量全局值不一致,则MEX函数以错误结束。使用 |
|
禁用同步。在禁用同步之前,请验证您的MEX函数不与MATLAB全局数据交互。否则,MATLAB和MEX函数之间可能会出现不一致。 |
禁用一致性检查。 |
看到为全局数据生成代码.
HighlightPotentialRowMajorIssues
- - - - - -潜在的主要行布局问题
真正的
(默认)|假
显示潜在的行主要布局效率问题,指定为该表中的一个值。
价值 | 描述 |
---|---|
真正的 |
代码生成报告显示由于行为主布局导致的潜在效率问题。(此值为默认值。) |
假 |
代码生成报告不显示与数组布局相关的问题。 |
看到行主数组布局的代码设计.
InitFltsAndDblsToZero
- - - - - -用memset赋值浮点数和双零
真正的
(默认)|假
赋值浮点数和双零memset
,指定为该表中的值之一。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 如果可能,代码生成器将使用 |
假 |
代码生成器不使用 |
InlineBetweenMathWorksFunctions
- - - - - -MathWorks函数之间的控制内联
“速度”
(默认)|“总是”
|“可读性”
|“永远”
在一个MathWorks调用另一个MathWorks函数的所有调用站点上的内联行为,指定为该表中的一个值。
价值 | 描述 |
---|---|
“速度” |
该值为默认值。 使用内部启发式方法确定是否在调用站点执行内联。这种设置通常会产生高度优化的代码。 |
“总是” |
始终在调用站点执行内联。 |
“可读性” |
几乎从不内联函数调用,除非调用非常小的函数。尽可能在不牺牲太多速度的情况下保持代码的模块化。产生高度可读的代码。 |
“永远” |
永远不要内联函数调用。产生最大的可读性。此设置可能会显著降低生成代码的性能。 |
即使你选择了“总是”
或者是“永远”
选项进行设置,在某些情况下,代码生成器可能不会严格遵循该指令。例如,如果存在冲突,则coder.inline(总是)
或coder.inline(“不”)
指令将覆盖此选项。有关更多信息,请参见不同内联控件之间的交互.
InlineBetweenUserAndMathWorksFunctions
- - - - - -控制用户编写的函数和MathWorks函数之间的内联
“速度”
(默认)|“总是”
|“可读性”
|“永远”
在您编写的函数调用MathWorks函数或MathWorks函数调用您编写的函数的所有调用站点上的内联行为。指定为该表中的值之一。
价值 | 描述 |
---|---|
“速度” |
该值为默认值。 使用内部启发式方法确定是否在调用站点执行内联。这种设置通常会产生高度优化的代码。 |
“总是” |
始终在调用站点执行内联。 |
“可读性” |
几乎从不内联函数调用,除非调用非常小的函数。尽可能在不牺牲太多速度的情况下保持代码的模块化。产生高度可读的代码。 |
“永远” |
永远不要内联函数调用。产生最大的可读性。此设置可能会显著降低生成代码的性能。 |
即使你选择了“总是”
或者是“永远”
选项进行设置,在某些情况下,代码生成器可能不会严格遵循该指令。例如,如果存在冲突,则coder.inline(总是)
或coder.inline(“不”)
指令将覆盖此选项。有关更多信息,请参见不同内联控件之间的交互.
InlineBetweenUserFunctions
- - - - - -控制用户编写的函数之间的内联
“速度”
(默认)|“总是”
|“可读性”
|“永远”
在您编写的函数调用您编写的另一个函数的所有调用站点的内联行为,指定为该表中的一个值。
价值 | 描述 |
---|---|
“速度” |
该值为默认值。 使用内部启发式方法确定是否在调用站点执行内联。这种设置通常会产生高度优化的代码。 |
“总是” |
始终在调用站点执行内联。 |
“可读性” |
几乎从不内联函数调用,除非调用非常小的函数。尽可能在不牺牲太多速度的情况下保持代码的模块化。产生高度可读的代码。 |
“永远” |
永远不要内联函数调用。产生最大的可读性。此设置可能会显著降低生成代码的性能。 |
即使你选择了“总是”
或者是“永远”
选项进行设置,在某些情况下,代码生成器可能不会严格遵循该指令。例如,如果存在冲突,则coder.inline(总是)
或coder.inline(“不”)
指令将覆盖此选项。有关更多信息,请参见不同内联控件之间的交互.
IntegrityChecks
- - - - - -内存完整性检查
真正的
(默认)|假
内存完整性检查,指定为该表中的一个值。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 生成的代码检测内存完整性违规,并使用诊断消息停止执行。 |
假 |
生成的代码不会检测内存完整性违规。 设置 |
看到控制运行时检查.
LaunchReport
- - - - - -自动打开代码生成报告
假
(默认)|真正的
自动打开代码生成报告,指定为该表中的值之一。
价值 | 描述 |
---|---|
假 |
该值为默认值。 如果出现错误或警告,或者如果 |
真正的 |
代码生成器生成并打开一个代码生成报告。 |
MATLABSourceComments
- - - - - -在生成的代码中包含MATLAB源代码作为注释
假
(默认)|真正的
在生成的代码中包含作为注释的MATLAB源代码,指定为该表中的值之一。
价值 | 描述 |
---|---|
假 |
该值为默认值。 代码生成器不会在生成的代码中插入MATLAB源代码作为注释。代码生成器在函数栏中不包括MATLAB函数签名。 |
真正的 |
代码生成器在生成的代码中插入MATLAB源代码作为注释。可追溯性标签紧接在每一行源代码的前面。跟踪标签可以帮助您定位相应的MATLAB源代码。看到跟踪生成的C/ c++代码到MATLAB源代码. 该代码生成器还在函数栏中包含MATLAB函数签名。 |
依赖:
GenerateComments
启用此参数。
名字
- - - - - -对象名称
“MexCodeConfig”
(默认)|特征向量
对象名称,指定为字符向量。
NumberOfCpuThreads
- - - - - -运行并行for循环的最大CPU线程数
0(默认)|正整数
并行运行的最大CPU线程数为
循环生成的C/ c++代码,指定为一个正整数。
PostCodeGenCommand
- - - - - -命令来自定义构建处理
”
(默认)|特征向量
命令来自定义生成MEX函数后的构建处理codegen
,指定为字符向量。
看到构建过程定制.
PreserveArrayDimensions
- - - - - -n维索引
假
(默认)|真正的
PreserveVariableNames
- - - - - -要在生成的代码中保留的变量名
“没有”
(默认)|“用户名”
|“所有”
在生成的代码中保留的变量名,指定为该表中的值之一。
价值 | 描述 |
---|---|
“没有” |
该值为默认值。 代码生成器不必保留任何变量名。它可以重用任何满足变量重用要求的变量。 如果代码使用大型结构体或数组,请设置 |
“用户名” |
代码生成器保留与您在MATLAB代码中定义的变量相对应的名称。它不会用另一个名称替换变量名,也不会将您的名称用于另一个变量。为了提高可读性,设置 设置 |
“所有” |
保留所有变量名。该参数值禁止变量重用。仅将其用于测试或调试,不要用于生产代码。 |
看到在生成的代码中保留变量名.
ReportInfoVarName
- - - - - -包含代码生成报告信息的变量的名称
”
(默认)|特征向量
导出有关代码生成的信息的变量名称,指定为字符向量。代码生成器在基本的MATLAB工作空间中创建这个变量。此变量包含有关代码生成设置、输入文件、生成的文件和代码生成消息的信息。
ReportPotentialDifferences
- - - - - -潜在差异报告
真正的
(默认)|假
电位差报告,指定为该表中的值之一:
价值 | 描述 |
---|---|
真正的 |
代码生成器报告生成的代码和MATLAB代码之间潜在的行为差异。可能的差异列在代码生成报告的选项卡上。电位差是运行时仅在某些条件下发生的差。 |
假 |
代码生成器不会报告潜在的差异。 |
看到潜在差异报告.
ReservedNameArray
- - - - - -代码生成器不能将其用于函数或变量的名称
”
(默认)|字符串数组|字符向量的单元数组|特征向量
代码生成器不得将其用于函数或变量的名称列表,指定为字符串数组、字符向量的单元格数组或字符向量。
多个保留名,指定为该表中的一个值。
价值 | 描述 |
---|---|
字符串数组 | 中的字符串数组 |
字符向量的单元数组 | 字符向量的单元数组 |
特征向量 | 中的保留名称列表,以分号分隔 请注意 通过使用字符向量在代码配置对象中指定多个条目将在未来的版本中删除。使用字符向量的字符串数组和单元数组代替。有关更多信息,请参见兼容性的考虑. |
ResponsivenessChecks
- - - - - -响应性检查
真正的
(默认)|假
响应性检查,指定为该表中的值之一。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 你可以用Ctrl + C停止执行生成的MEX函数。 |
假 |
要结束长时间运行的MEX函数,可能必须终止MATLAB。 |
当使用GPU Coder时,代码生成器总是禁用此参数。
看到控制运行时检查.
RowMajor
- - - - - -行为主数组布局
假
(默认)|真正的
SaturateOnIntegerOverflow
- - - - - -整数溢出支持金宝app
真正的
(默认)|假
整数溢出支持,指定为该表中的值之一金宝app。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 代码生成器生成处理整数溢出的代码。溢出饱和到数据类型可以表示的最小值或最大值。 |
假 |
代码生成器不会生成处理整数溢出的代码。不要设置 |
此参数仅适用于MATLAB内置整数类型。它不适用于双精度、单精度或定点数据类型。
StackUsageMax
- - - - - -每个应用程序的最大堆栈使用量
200000
(默认)|正整数
每个应用程序的最大堆栈使用量,以字节为单位,指定为正整数。设置一个低于可用堆栈大小的限制。否则,可能会发生运行时堆栈溢出。C编译器检测并报告堆栈溢出。
看到控制堆栈空间使用.
TargetLang
- - - - - -在生成的代码中使用的语言
“C”
(默认)|“c++”
在生成的代码中使用的语言,指定为“C”
或“c++”
.如果指定c++,代码生成器将C代码打包到.cpp文件中,以便您可以使用c++编译器并与外部c++应用程序接口。它不生成c++类。
当使用GPU编码器时,代码生成集TargetLang
来c++
.
依赖:如果DeepLearningConfig
是集,codegen
集TargetLang
来c++
.
冗长
- - - - - -代码生成进度显示
“信息”
(默认)|“沉默”
|“详细”
是否在MATLAB命令行中显示代码生成进度的状态,指定为该表中的值之一。
价值 | 描述 |
---|---|
“沉默” |
如果代码生成成功而没有警告,则所有消息都将被抑制,包括生成报告时。 系统显示警告和错误信息。 |
“信息” |
该值为默认值。 相比之下
|
“详细” |
中显示的消息之外 |
例子
为MEX函数生成指定配置参数
编写一个MATLAB函数,从中可以生成代码。这个例子使用了这个函数myadd
它返回所有输入的和。
函数C = myadd(a,b);结束
创建用于生成MEX函数的配置对象。
CFG = coder.config(墨西哥人的);
更改不想使用默认值的属性的值。例如,启用即时(JIT)编译。
cfg。EnableJIT = true;
使用以下命令生成代码codegen
.将配置对象传递给codegen
通过使用配置
选择。指定输入参数为双精度标量。
codegenmyadd配置cfgarg游戏{1}报告
选择功能
要为MEX函数生成使用默认配置参数值,而不是创建配置对象,您可以调用codegen
不指定配置对象或使用配置:墨西哥人
选择。
版本历史
在R2011a中引入R2022a:DynamicMemoryAllocation
将被移除的物业
不建议从R2022a开始
在未来的版本中,DynamicMemoryAllocation
财产将被移除。
要为可变大小的数组动态分配内存,请使用configuration参数DynamicMemoryAllocationForVariableSizeArrays
.
不要使用DynamicMemoryAllocation
和DynamicMemoryAllocationForVariableSizeArrays
在代码生成过程中一起。
R2021a:通过使用字符向量在代码配置对象中指定多个条目的能力将被删除
未来版本中的行为更改
在将来的版本中,通过使用带有分隔符的字符向量或字符串标量在代码配置对象中指定多个文件名、路径或保留名称将被删除。使用字符串数组和字符向量的单元格数组代替。例如,若要包含多个文件夹名称,可以在中使用字符串数组CustomInclude
作为cfg。CustomInclude = ["C:\Project","C:\Custom Files"];
或字符向量的单元数组cfg。CustomInclude = {'C:\Project','C:\Custom Files'};
以包含编译所生成代码的路径。
MATLAB命令
您点击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
你亦可选择下列网址:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家网站没有针对您所在位置的访问进行优化。