codegengydF4y2Ba
生成C/ c++代码gydF4y2BaMATLABgydF4y2Ba代码gydF4y2Ba
语法gydF4y2Ba
码原选项文件fcn_1 args…fcn_n arg游戏gydF4y2Ba
codegen project_namegydF4y2Ba
描述gydF4y2Ba
codegengydF4y2Ba
MATLAB翻译gydF4y2Ba®gydF4y2Ba功能gydF4y2Ba选项gydF4y2Ba
文件gydF4y2Ba
fcn_1gydF4y2Ba
arg游戏gydF4y2Ba
...fcn_n arg游戏gydF4y2Bafcn_1gydF4y2Ba
通过gydF4y2Bafcn_ngydF4y2Ba
到C/ c++静态或动态库、可执行文件或MEX函数。您还可以指定customgydF4y2Ba文件gydF4y2Ba
要包含在构建中。gydF4y2BacodegengydF4y2Ba
应用gydF4y2Ba选项gydF4y2Ba
函数gydF4y2Bafcn_1gydF4y2Ba
通过gydF4y2Bafcn_ngydF4y2Ba
.它适用于gydF4y2Baarg游戏gydF4y2Ba
仅适用于上述函数(gydF4y2Bafcn_ngydF4y2Ba
).如果指定c++,gydF4y2BaMATLAB编码器™gydF4y2Ba将C代码包装到.cpp文件中,以便您可以使用c++编译器并与外部c++应用程序进行接口。它不生成c++类。gydF4y2Ba
codegengydF4y2Ba
为gydF4y2BaMATLAB编码器gydF4y2Ba项目gydF4y2Baproject_namegydF4y2Ba
project_namegydF4y2Ba
.gydF4y2BacodegengydF4y2Ba
生成一个MEX函数,C/ c++静态或动态库,或C/ c++可执行文件,这取决于您为之定义的项目设置gydF4y2Baproject_namegydF4y2Ba
.gydF4y2Ba
默认情况下,gydF4y2BacodegengydF4y2Ba
在文件夹中生成文件gydF4y2Bacodegen /gydF4y2Ba
.gydF4y2Ba目标gydF4y2Ba
/gydF4y2Bafcn_namegydF4y2Ba
目标gydF4y2Ba
可以是:gydF4y2Ba
墨西哥人gydF4y2Ba
用于MEX功能gydF4y2BaexegydF4y2Ba
可嵌入的C/ c++可执行文件gydF4y2Ba自由gydF4y2Ba
用于嵌入式C/ c++静态库gydF4y2BadllgydF4y2Ba
用于C/ c++动态库gydF4y2Ba
fcn_namegydF4y2Ba
是命令行中第一个MATLAB函数的名称(按字母顺序排列)。gydF4y2Ba
codegengydF4y2Ba
将MEX函数和可执行文件复制到当前工作文件夹或输出文件夹gydF4y2Ba- dgydF4y2Ba
选项指定。gydF4y2Ba
每一次gydF4y2BacodegengydF4y2Ba
为相同的代码或项目生成相同类型的输出,它将从以前的构建中删除文件。如果您想保留以前生成的文件,在开始另一个生成之前,将它们复制到不同的位置gydF4y2Ba
输入参数gydF4y2Ba
|
|
||
|
如果这些MATLAB函数位于包含非7位ASCII字符(如日本字符)的路径上的文件中,则有可能gydF4y2Ba 如果使用LCC编译器,不要命名入口点函数gydF4y2Ba |
|
要包含在生成代码中的自定义文件的空格分隔列表。你可以包含以下类型的文件:gydF4y2Ba
如果这些文件位于包含非7位ASCII字符的路径上,例如日本字符,则可能gydF4y2Ba |
|
选择编译器选项。gydF4y2Ba
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
项目名称gydF4y2BaMATLAB编码器gydF4y2Ba你想要的项目gydF4y2Ba |
例子gydF4y2Ba
从适合代码生成的MATLAB函数生成MEX函数。gydF4y2Ba
写一个MATLAB函数,gydF4y2Ba
coderandgydF4y2Ba
,该方法从开区间(0,1)上的标准均匀分布生成一个随机标量值。gydF4y2Ba函数gydF4y2BaR = coderand()gydF4y2Ba% # codegengydF4y2Ba指令%#codegen指示函数gydF4y2Ba%用于代码生成gydF4y2BaR = rand();gydF4y2Ba
生成并运行MEX函数。默认情况下,gydF4y2Ba
codegengydF4y2Ba
生成的MEX函数的名称gydF4y2Bacoderand_mexgydF4y2Ba
.gydF4y2BacodegengydF4y2BacoderandgydF4y2Bacoderand_mexgydF4y2Ba
从适合代码生成的MATLAB函数生成C可执行文件。指定主C函数作为配置参数。gydF4y2Ba
写一个MATLAB函数,gydF4y2Ba
coderandgydF4y2Ba
,该方法从开区间(0,1)上的标准均匀分布生成一个随机标量值。gydF4y2Ba函数gydF4y2BaR = coderand()gydF4y2Ba% # codegengydF4y2BaR = rand();gydF4y2Ba
写一个主C函数,gydF4y2Ba
c: \ myfile \ cgydF4y2Ba
,那就叫gydF4y2BacoderandgydF4y2Ba
.gydF4y2Ba/* ** main.c */ #include
#include #include "coderand_initial .h" #include "coderand_terminate.h" int main() {coderand_initialize();printf (" coderand = % g \ n”,coderand ());coderand_terminate ();返回0;}gydF4y2Ba 配置代码生成参数以包含主C函数,然后生成C可执行文件。gydF4y2Ba
CFG = code .config(gydF4y2Baexe”gydF4y2Bacfg。CustomSource =gydF4y2Ba“c”gydF4y2Bacfg。CustomInclude =gydF4y2Ba“c: \ myfile”gydF4y2BacodegengydF4y2Ba配置gydF4y2BacfggydF4y2BacoderandgydF4y2Ba
codegengydF4y2Ba
生成一个C可执行文件,gydF4y2Bacoderand.exegydF4y2Ba
,在当前文件夹中,支持文件在默认文件夹中,万博1manbetxgydF4y2Bacodegen / exe / coderandgydF4y2Ba
.gydF4y2Ba这个例子展示了如何在配置对象中指定一个主函数作为参数gydF4y2Ba
编码器。CodeConfiggydF4y2Ba
.或者,您可以指定包含gydF4y2Bamain ()gydF4y2Ba
分别在命令行中。您可以使用源文件、对象文件或库文件。gydF4y2Ba
从MATLAB函数生成自定义文件夹中的C库文件,输入类型和大小不同。第一个输入是一个1乘4的16位无符号整数向量。第二个输入是一个双精度标量。gydF4y2Ba
写一个MATLAB函数,gydF4y2Ba
mcaddgydF4y2Ba
,返回两个值的和。gydF4y2Ba函数gydF4y2BaY = McAdd (u,v)gydF4y2Ba% # codegengydF4y2BaY = u + v;gydF4y2Ba
在自定义文件夹中生成C库文件gydF4y2Ba
mcaddlibgydF4y2Ba
使用gydF4y2Ba配置:自由gydF4y2Ba
选择。gydF4y2BacodegengydF4y2Ba- dgydF4y2BamcaddlibgydF4y2Ba配置:自由gydF4y2BamcaddgydF4y2Baarg游戏gydF4y2Ba{0(1, 4,“uint16”),0}gydF4y2Ba
从接受定点输入的MATLAB函数生成C库文件。gydF4y2Ba
写一个MATLAB语言函数,gydF4y2Ba
mcsqrtfigydF4y2Ba
,它计算一个定点输入的平方根。gydF4y2Ba函数gydF4y2BaY = McSqrtfi (x)gydF4y2Ba% # codegengydF4y2BaY =√(x);gydF4y2Ba
定义gydF4y2Ba
numerictypegydF4y2Ba
而且gydF4y2BafimathgydF4y2Ba
属性gydF4y2BaxgydF4y2Ba
并生成C库代码gydF4y2BamcsqrtfigydF4y2Ba
使用gydF4y2Ba配置:自由gydF4y2Ba
选择。gydF4y2Ba数字类型(gydF4y2Ba“字”gydF4y2Ba32岁的gydF4y2Ba...gydF4y2Ba“FractionLength”gydF4y2Ba23岁的gydF4y2Ba...gydF4y2Ba“签署”gydF4y2Ba,true) F = fimath(gydF4y2Ba“SumMode”gydF4y2Ba,gydF4y2Ba“SpecifyPrecision”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“SumWordLength”gydF4y2Ba32岁的gydF4y2Ba...gydF4y2Ba“SumFractionLength”gydF4y2Ba23岁的gydF4y2Ba...gydF4y2Ba“ProductMode”gydF4y2Ba,gydF4y2Ba“SpecifyPrecision”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“ProductWordLength”gydF4y2Ba32岁的gydF4y2Ba...gydF4y2Ba“ProductFractionLength”gydF4y2Ba, 23)gydF4y2Ba用这些定义一个定点变量gydF4y2Ba%数字类型和fimath属性gydF4y2Bamyfiprops = {fi(4.0,T,F)}编码原gydF4y2Ba配置:自由gydF4y2BamcsqrtfigydF4y2Baarg游戏gydF4y2BamyfipropsgydF4y2Ba
codegengydF4y2Ba
在默认文件夹中生成C库和支持文件,万博1manbetxgydF4y2Bacodegen / lib / mcsqrtfigydF4y2Ba
.gydF4y2Ba
在命令行中指定全局数据。gydF4y2Ba
写一个MATLAB函数,gydF4y2Ba
use_globalsgydF4y2Ba
,它接受一个输入参数gydF4y2BaugydF4y2Ba
并使用两个全局变量gydF4y2Ba基于“增大化现实”技术gydF4y2Ba
而且gydF4y2BaBgydF4y2Ba
.gydF4y2Ba函数gydF4y2BaY = use_globals(u)gydF4y2Ba% # codegengydF4y2Ba关闭要做的内联gydF4y2Ba%生成的代码更容易阅读gydF4y2Bacoder.inline (gydF4y2Ba“永远”gydF4y2Ba);gydF4y2Ba全球gydF4y2Ba基于“增大化现实”技术;gydF4y2Ba全球gydF4y2BaB;AR(1) = u(1) + B(1);y = AR * 2;gydF4y2Ba
生成MEX函数。默认情况下,gydF4y2Ba
codegengydF4y2Ba
生成一个名为gydF4y2Bause_globals_mexgydF4y2Ba
在当前文件夹中。属性在命令行中指定全局变量的属性gydF4y2Ba全局变量gydF4y2Ba
选择。指定输入gydF4y2BaugydF4y2Ba
是实数,标量,双精度,通过使用gydF4y2Baarg游戏gydF4y2Ba
选择。gydF4y2BacodegengydF4y2Ba全局变量gydF4y2Ba{'AR', ones(4), 'B', [1 2 3 4]}gydF4y2Ba...gydF4y2Bause_globalsgydF4y2Baarg游戏gydF4y2Ba{0}gydF4y2Ba
或者,您也可以在MATLAB工作区中初始化全局数据。在MATLAB提示符下,输入:gydF4y2Ba
全球gydF4y2Ba基于“增大化现实”技术的B;AR = ones(4);B = [1 2 3];gydF4y2Ba
use_globalsxgydF4y2Ba
.gydF4y2BacodegengydF4y2Bause_globalsgydF4y2Baarg游戏gydF4y2Ba{0}gydF4y2Ba
为gydF4y2BaMATLAB编码器gydF4y2Ba项目,gydF4y2Batest_foo.prjgydF4y2Ba
,其中包括一个文件,gydF4y2Bafoo.mgydF4y2Ba
,并将其输出类型设置为C/ c++静态库。gydF4y2Ba
codegengydF4y2Batest_foo.prjgydF4y2Ba
codegengydF4y2Ba
生成一个C库,gydF4y2Ba喷火gydF4y2Ba
,在gydF4y2Bacodegen \ lib \ foogydF4y2Ba
文件夹中。gydF4y2Ba
为函数生成一个MEX函数,gydF4y2BadisplayStategydF4y2Ba
,其输入参数为枚举类型。gydF4y2Ba
写一个函数,gydF4y2Ba
displayStategydF4y2Ba
,它根据设备的状态使用枚举数据来激活LED显示屏。它会点亮一个绿色的LED显示屏,表示开启状态。它会点亮一个红色的LED显示屏来指示关闭状态。gydF4y2Ba函数gydF4y2Baled = displayState(状态)gydF4y2Ba% # codegengydF4y2Ba如果gydF4y2Bastate == sysMode。ON led = LEDcolor.GREEN;gydF4y2Ba其他的gydF4y2Baled = LEDcolor.RED;gydF4y2Ba结束gydF4y2Ba
定义一个枚举gydF4y2Ba
LEDColorgydF4y2Ba
.在MATLAB路径中,创建一个名为“LEDColor”的文件,包含:gydF4y2BaclassdefgydF4y2BaLEDcolor < int32gydF4y2Ba枚举gydF4y2Ba绿(1),红(2),gydF4y2Ba结束gydF4y2Ba结束gydF4y2Ba
创建一个gydF4y2Ba
编码器。EnumTypegydF4y2Ba
对象使用现有MATLAB枚举中的值。gydF4y2Ba定义一个枚举gydF4y2Ba
sysModegydF4y2Ba
.在MATLAB路径中,创建一个名为“sysMode”的文件,包含:gydF4y2BaclassdefgydF4y2BasysMode < int32gydF4y2Ba枚举gydF4y2Ba(0) (1)gydF4y2Ba结束gydF4y2Ba结束gydF4y2Ba
创建一个gydF4y2Ba
编码器。EnumTypegydF4y2Ba
从此枚举中获取。gydF4y2Bat = code .typeof(sysMode.OFF);gydF4y2Ba
生成的MEX函数gydF4y2Ba
displayStategydF4y2Ba
.gydF4y2BacodegengydF4y2BadisplayStategydF4y2Baarg游戏gydF4y2Ba{t}gydF4y2Ba
将浮点MATLAB代码转换为定点C代码gydF4y2Ba
本例需要定点设计器许可证。gydF4y2Ba
写一个MATLAB函数,gydF4y2Ba
myaddgydF4y2Ba
,返回两个值的和。gydF4y2Ba函数gydF4y2BaY = myadd(u,v)gydF4y2Ba% # codegengydF4y2BaY = u + v;gydF4y2Ba结束gydF4y2Ba
写一个MATLAB函数,gydF4y2Ba
myadd_testgydF4y2Ba
,以测试gydF4y2BamyaddgydF4y2Ba
.gydF4y2Ba函数gydF4y2BaY = myadd_testgydF4y2Ba% # codegengydF4y2BaY = myadd(10,20);gydF4y2Ba结束gydF4y2Ba
创建一个gydF4y2Ba
编码器。FixptConfiggydF4y2Ba
对象,gydF4y2BafixptcfggydF4y2Ba
,使用默认设置。gydF4y2BaFixptcfg = code .config(gydF4y2Ba“fixpt”gydF4y2Ba);gydF4y2Ba
设置测试台名。gydF4y2Ba
fixptcfg。TestBenchName =gydF4y2Ba“myadd_test”gydF4y2Ba;gydF4y2Ba
创建一个代码生成配置对象以生成一个独立的C静态库。gydF4y2Ba
CFG = code .config(gydF4y2Ba“自由”gydF4y2Ba);gydF4y2Ba
方法生成代码gydF4y2Ba
-float2fixedgydF4y2Ba
选择。gydF4y2BacodegengydF4y2Ba-float2fixedgydF4y2BafixptcfggydF4y2Ba配置gydF4y2BacfggydF4y2BamyaddgydF4y2Ba
将双精度MATLAB代码转换为单精度C代码。gydF4y2Ba
本例需要定点设计器许可证。gydF4y2Ba
假设gydF4y2BamyfunctiongydF4y2Ba
接受两个双标量输入。使用gydF4y2Ba-singleCgydF4y2Ba
选项生成单精度C/ c++代码。gydF4y2Ba
codegengydF4y2Ba-singleCgydF4y2BamyfunctiongydF4y2Baarg游戏gydF4y2Ba{1 2}gydF4y2Ba
提示gydF4y2Ba
可以使用函数语法进行调用gydF4y2Ba
codegengydF4y2Ba
.使用…的函数形式gydF4y2BacodegengydF4y2Ba
,指定gydF4y2BacodegengydF4y2Ba
参数作为字符向量或字符串标量。gydF4y2Ba例如:gydF4y2Ba
codegen (gydF4y2Ba“myfunction”gydF4y2Ba,gydF4y2Ba“参数”gydF4y2Ba, {2 3},gydF4y2Ba“报告”gydF4y2Ba)gydF4y2Ba
的命令形式提供字符串标量输入gydF4y2Ba
codegengydF4y2Ba
能产生意想不到的结果。提供字符串标量作为示例输入或指定gydF4y2BacodegengydF4y2Ba
参数作为字符串标量时,使用的函数形式gydF4y2BacodegengydF4y2Ba
.gydF4y2Ba提供一个示例字符串标量输入值。gydF4y2Ba
codegen (gydF4y2Ba“myfunction”gydF4y2Ba,gydF4y2Ba“参数”gydF4y2Ba,gydF4y2Ba“就是”gydF4y2Ba,gydF4y2Ba“报告”gydF4y2Ba)gydF4y2Ba
指定gydF4y2Ba
codegengydF4y2Ba
参数作为字符串标量。gydF4y2Bacodegen (gydF4y2Ba“myfunction”gydF4y2Ba,gydF4y2Ba“参数”gydF4y2Ba,gydF4y2Ba“就是”gydF4y2Ba,gydF4y2Ba“报告”gydF4y2Ba)gydF4y2Ba
选择gydF4y2Ba
使用gydF4y2Ba编码器gydF4y2Ba
函数打开gydF4y2BaMATLAB编码器gydF4y2Ba应用程序,并创建gydF4y2BaMATLAB编码器gydF4y2Ba项目。该应用程序提供了一个用户界面,方便添加MATLAB文件,定义输入参数,并指定构建参数。gydF4y2Ba
另请参阅gydF4y2Ba
编码器gydF4y2Ba
|gydF4y2Ba编码器。EnumTypegydF4y2Ba
|gydF4y2Ba编码器。FixptConfiggydF4y2Ba
|gydF4y2Bacoder.runTestgydF4y2Ba
|gydF4y2Bacoder.typeofgydF4y2Ba
|gydF4y2BafigydF4y2Ba
|gydF4y2BafimathgydF4y2Ba
|gydF4y2Ba墨西哥人gydF4y2Ba
|gydF4y2BanumerictypegydF4y2Ba
|gydF4y2BaparforgydF4y2Ba
主题gydF4y2Ba
- 在命令行生成C代码gydF4y2Ba
- C代码生成使用MATLAB Coder应用程序gydF4y2Ba
- 命令行生成MEX功能gydF4y2Ba
- 指定入口点函数输入的属性gydF4y2Ba
- 在命令行中指定单元格数组输入gydF4y2Ba
- 在命令行中指定全局单元格数组gydF4y2Ba
- 指定代码生成的语言gydF4y2Ba
- 路径和文件基础结构设置gydF4y2Ba
- 为全局数据生成代码gydF4y2Ba
- 用MATLAB同步全局数据gydF4y2Ba
- 为多个入口点函数生成代码gydF4y2Ba
- 转换MATLAB代码到定点C代码gydF4y2Ba
- 在命令行生成单精度C代码gydF4y2Ba
- 生成单精度MATLAB代码gydF4y2Ba
- parfor-Loops的控件编译gydF4y2Ba