生成C/ c++代码MATLAB代码
在验证MEX代码行为之后,为您的项目生成独立代码。
指定输入类型。
检查运行时问题。
配置代码生成生成设置。
生成独立的C/ c++代码。
理解生成的代码。
指定输入类型
在生成代码之前,向代码生成器提供输入类型。然后,代码生成器决定在生成的代码中使用的数据类型。
若要自动定义输入类型,请使用示例输入调用函数,或在提示符中输入调用函数的脚本。通过提供示例输入直接提供输入类型。如果你的代码需要一个双倍大小的矩阵3.
——- - - - - -4
,示例输入可以为0(3、4)
或(3、4)
.
有关更多信息,请参见代码生成的输入类型规范.
检查运行时问题
在为代码生成器定义输入类型之后,执行初始代码生成和代码执行,以检测难以在生成的代码中诊断的运行时错误。
要为代码生成一个MEX文件,请单击检查问题按钮。
控件,可以自动打开“代码生成报告”总是创建一个代码生成报告选项中的调试下节更多的设置.
配置代码生成生成设置
若要根据需求创建代码,可以更改代码生成器的配置设置。在生成代码选项卡,选择更多的设置按钮在选项卡底部。此窗口列出修改生成代码的配置设置。
使用这些设置可以指定应在何处构建生成的代码、应用目标特定的优化、启用可变大小支持、在生成的代码中包含注释,以及为生成的代码应用其他自定义。金宝app
生成独立的C/ c++代码
通过生成MEX文件检查运行时问题后,通过选择所需的生成独立的C/ c++代码构建类型下生成代码标签在应用程序。
要为项目生成代码,请单击生成.
理解生成的代码
接入码生成报告
使用代码生成报告查看生成的C/ c++代码,MATLAB之间跟踪®代码和生成的C/ c++代码,并识别生成的代码中的潜在问题。
代码生成后,打开代码生成报告。
在MATLAB编码器™应用程序,在调试设置时,选中复选框总是创建一个报告而且如果生成了报告,则自动启动报告.
有关更多信息,请参见代码生成报告.
生成代码中的数组布局
编程语言和环境通常假设所有数据都采用单一数组布局。MATLAB默认使用列主布局,而C和c++使用行主布局。
生成行主代码:
在应用程序中,打开生成对话框。在生成代码页,单击生成箭头。
点击更多的设置.
在内存选项卡,设置阵列布局来
行
.
看到行-主数组布局代码设计.
生成代码中的内存分配
对于代码生成,数组维数为固定大小或适应.如果代码生成器可以确定维度的大小,并且维度的大小不会改变,那么维度就是固定大小。当数组的所有维度都是固定大小时,该数组为固定大小数组中。
您可以生成在程序堆栈或堆上为固定大小和可变大小数组分配内存的代码。
静态内存分配在编译时为程序堆栈上的数组分配内存。静态分配在以下情况下是有益的:
您知道所使用的所有数组的上界。
你有一个很大的程序栈。
数组很小,在程序堆栈上占用的空间更少。
动态内存分配在运行时根据需要在堆上分配内存,而不是在堆栈上静态分配内存。动态内存分配在以下情况下是有益的:
你不知道数组的上限。
您不希望在堆栈上为大型数组分配内存。
动态内存分配可能导致生成的代码执行速度变慢。看到控制可变大小数组的内存分配.
在生成的代码中为固定大小和可变大小的数组动态分配内存:
在应用程序中,打开生成对话框。在生成代码页,单击生成箭头。
点击更多的设置.
在内存选项卡,从下拉列表中选择可变大小数组的动态内存分配.
在内存选项卡,从下拉列表中选择固定大小数组的动态内存分配
将这些选项设置为“阈值”
导致动态分配大小(以字节为单位)大于阈值的数组。
提示
定义无限数组的最大大小
方法为大小取决于用户输入的数组生成代码,则仍然可以为此类输入设置上限断言
函数。例如:
函数inSize(n) assert(n < 25);Y = 0 (1,n);结束
文件I/O支持金宝app
代码生成器包括对函数的有限支持,如金宝appcoder.load
,从文件中读
,打开外部文件
,流
,文件关闭
.
从C项目中调用生成的代码
代码生成器提供了一个示例main函数,供您在生成静态或动态库时参考。看到在应用程序中使用一个C Main的例子.
在命令行生成代码
您可以在命令行上生成代码并设置所有选项。看到codegen
而且coder.config
.
还可以使用代码配置对象在命令行上设置这些选项。选项是可通过点表示法访问的配置对象的属性。看到编码器。MexCodeConfig
,编码器。代码Config
,编码器。EmbeddedCodeConfig
.
请注意
要打开包含相关构建配置设置的对话框,双击工作空间中的配置对象。
将项目转换为脚本
方法还可以将项目转换为脚本-tocode
选项编码器
命令。
优化生成的代码
虽然代码生成器为大多数应用程序生成优化的代码,但您可以通过以下一些最佳实践为项目生成高效的C/ c++代码:
通过引用传递参数
内联代码
集成优化的外部代码
禁用运行时检查
有关更多信息,请参见优化策略.
在命令行创建报告
在命令行生成代码时,使用这些codegen
选项:
要生成报告,请使用
报告
选择。要生成和打开报表,请使用
-launchreport
选择。
或者,使用配置对象属性:
若要生成报表,请设置
GenerateReport
来真正的
.如果你想要
codegen
命令为您打开报表,设置LaunchReport
来真正的
.
另请参阅
coder.cstructname
|编码器。MexCodeConfig
|编码器。代码Config
|编码器。EmbeddedCodeConfig
|coder.load
|从文件中读
|文件关闭
|流
|打开外部文件
|coder.opaque