文档gydF4y2Ba

codegengydF4y2Ba

生成C/ c++代码gydF4y2BaMATLABgydF4y2Ba代码gydF4y2Ba

语法gydF4y2Ba

码原选项文件fcn_1 args…fcn_n arg游戏gydF4y2Ba
codegen project_namegydF4y2Ba

描述gydF4y2Ba

codegengydF4y2Ba选项gydF4y2Ba文件gydF4y2Bafcn_1gydF4y2Baarg游戏gydF4y2Ba...fcn_n arg游戏gydF4y2BaMATLAB翻译gydF4y2Ba®gydF4y2Ba功能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

codegengydF4y2Baproject_namegydF4y2Ba为gydF4y2BaMATLAB编码器gydF4y2Ba项目gydF4y2Baproject_namegydF4y2Ba.gydF4y2BacodegengydF4y2Ba生成一个MEX函数,C/ c++静态或动态库,或C/ c++可执行文件,这取决于您为之定义的项目设置gydF4y2Baproject_namegydF4y2Ba.gydF4y2Ba

默认情况下,gydF4y2BacodegengydF4y2Ba在文件夹中生成文件gydF4y2Bacodegen /gydF4y2Ba目标gydF4y2Ba/gydF4y2Bafcn_namegydF4y2Ba.gydF4y2Ba

目标gydF4y2Ba可以是:gydF4y2Ba

  • 墨西哥人gydF4y2Ba用于MEX功能gydF4y2Ba

  • exegydF4y2Ba可嵌入的C/ c++可执行文件gydF4y2Ba

  • 自由gydF4y2Ba用于嵌入式C/ c++静态库gydF4y2Ba

  • dllgydF4y2Ba用于C/ c++动态库gydF4y2Ba

fcn_namegydF4y2Ba是命令行中第一个MATLAB函数的名称(按字母顺序排列)。gydF4y2Ba

codegengydF4y2Ba将MEX函数和可执行文件复制到当前工作文件夹或输出文件夹gydF4y2Ba- dgydF4y2Ba选项指定。gydF4y2Ba

每一次gydF4y2BacodegengydF4y2Ba为相同的代码或项目生成相同类型的输出,它将从以前的构建中删除文件。如果您想保留以前生成的文件,在开始另一个生成之前,将它们复制到不同的位置gydF4y2Ba

输入参数gydF4y2Ba

arg游戏gydF4y2Ba

arg游戏gydF4y2Ba仅适用于上述函数,gydF4y2Bafcn_ngydF4y2Ba.gydF4y2Ba

arg游戏gydF4y2Baexample_inputsgydF4y2Ba

通过提供示例输入值的单元格数组,定义MATLAB函数输入的大小、类和复杂性。示例输入在单元格数组中的位置必须与MATLAB函数定义中输入参数的位置相对应。若要生成输入参数少于函数定义的函数,请省略不需要的参数示例值。gydF4y2Ba

在应用示例输入的函数之后立即指定示例输入。gydF4y2Ba

不提供示例值,可以提供gydF4y2Ba编码器。类型gydF4y2Ba对象。要创建gydF4y2Ba编码器。类型gydF4y2Ba对象,使用gydF4y2Bacoder.typeofgydF4y2Ba.gydF4y2Ba

fcn_1gydF4y2Ba

fcn_1……fcn_ngydF4y2Ba是MATLAB入口函数,从中生成MEX函数、C/ c++库或C/ c++可执行代码。在大多数情况下,您只有一个函数。确保gydF4y2Bafcn_1……fcn_ngydF4y2Ba适用于代码生成。gydF4y2Ba

如果这些MATLAB函数位于包含非7位ASCII字符(如日本字符)的路径上的文件中,则有可能gydF4y2BacodegengydF4y2Ba找不到他们。gydF4y2Ba

如果使用LCC编译器,不要命名入口点函数gydF4y2Ba主要gydF4y2Ba.gydF4y2Ba

文件gydF4y2Ba

要包含在生成代码中的自定义文件的空格分隔列表。你可以包含以下类型的文件:gydF4y2Ba

  • C文件(gydF4y2Ba.c)gydF4y2Ba

  • c++文件(gydF4y2Ba. cppgydF4y2Ba)gydF4y2Ba

  • 头文件(gydF4y2Ba.h)gydF4y2Ba

  • 目标文件(gydF4y2Ba.o或gydF4y2Ba.objgydF4y2Ba)gydF4y2Ba

  • 库(gydF4y2Ba.a,gydF4y2Ba所以gydF4y2Ba,gydF4y2Ba. dylibgydF4y2Ba,或gydF4y2Ba. libgydF4y2Ba)gydF4y2Ba

  • 模板制作文件(gydF4y2Ba.tmfgydF4y2Ba)gydF4y2Ba

如果这些文件位于包含非7位ASCII字符的路径上,例如日本字符,则可能gydF4y2BacodegengydF4y2Ba找不到他们。gydF4y2Ba

选项gydF4y2Ba

选择编译器选项。gydF4y2BacodegengydF4y2Ba使单个命令行选项优先于使用配置对象指定的选项。如果命令行选项冲突,则以最右边的选项为准。gydF4y2Ba

- cgydF4y2Ba

生成C/ c++代码,但不调用gydF4y2Ba使gydF4y2Ba命令。gydF4y2Ba

配置:dllgydF4y2Ba

使用默认配置参数生成一个动态C/ c++库。gydF4y2Ba

配置:exegydF4y2Ba

使用默认配置参数生成静态C/ c++可执行文件。gydF4y2Ba

配置:自由gydF4y2Ba

使用默认配置参数生成一个静态C/ c++库。gydF4y2Ba

配置:墨西哥人gydF4y2Ba

使用缺省配置参数生成MEX功能。gydF4y2Ba

配置:单gydF4y2Ba

使用默认配置参数生成单精度MATLAB代码。gydF4y2Ba

需要定点设计器许可证。gydF4y2Ba

配置gydF4y2Baconfig_objectgydF4y2Ba

指定包含代码生成参数的配置对象。gydF4y2Baconfig_objectgydF4y2Ba基于以下类之一:gydF4y2Ba

  • 编码器。CodeConfiggydF4y2Ba-独立C/ c++库或可执行文件生成的参数,如果没有嵌入式编码器gydF4y2Ba®gydF4y2Ba已获取License。gydF4y2Ba

    %动态链接库的配置对象cfg = code .config('dll') %可执行库的配置对象cfg = code .config('exe') %静态独立库的配置对象cfg = code .config('lib')gydF4y2Ba

  • 编码器。EmbeddedCodeConfiggydF4y2Ba-独立的C/ c++库或可执行文件生成(如果有嵌入式编码器许可证)的参数。gydF4y2Ba

    %动态链接库的配置对象ec_cfg = code .config('dll') %可执行库的配置对象ec_cfg = code .config('exe') %静态独立库的配置对象ec_cfg = code .config('lib')gydF4y2Ba

  • 编码器。MexCodeConfiggydF4y2Ba—生成MEX码的参数。gydF4y2Ba

    Mex_cfg =编码器。Config % or mex_cfg = code . Config ('mex')gydF4y2Ba

- dgydF4y2Baout_foldergydF4y2Ba

将生成的文件存储在指定的绝对或相对路径中gydF4y2Baout_foldergydF4y2Ba.gydF4y2Baout_foldergydF4y2Ba不能包含:gydF4y2Ba

  • 空格,因为空格在某些操作系统配置中可能导致代码生成失败。gydF4y2Ba

  • 非7位ASCII字符,如日文字符,gydF4y2Ba

指定的文件夹gydF4y2Baout_foldergydF4y2Ba不存在,gydF4y2BacodegengydF4y2Ba创建它。gydF4y2Ba

如果您没有指定文件夹位置,gydF4y2BacodegengydF4y2Ba在默认文件夹中生成文件:gydF4y2Ba

codegen /gydF4y2Ba目标gydF4y2Ba/gydF4y2Bafcn_namegydF4y2Ba.gydF4y2Ba

目标gydF4y2Ba可以是:gydF4y2Ba

  • 墨西哥人gydF4y2Ba用于MEX功能gydF4y2Ba

  • exegydF4y2Ba可嵌入的C/ c++可执行文件gydF4y2Ba

  • 自由gydF4y2Ba用于嵌入式C/ c++库gydF4y2Ba

  • dllgydF4y2Ba用于C/ c++动态库gydF4y2Ba

fcn_namegydF4y2Ba是命令行中第一个MATLAB函数的名称(按字母顺序排列)。gydF4y2Ba

该函数不支持文件夹名称中包含星号(*)、问号万博1manbetx(?)、美元($)和英镑(#)。gydF4y2Ba

请注意gydF4y2Ba

每一次gydF4y2BacodegengydF4y2Ba为相同的代码生成相同类型的输出,它将从以前的构建中删除文件。如果您想保留以前生成的文件,在开始另一个生成之前,将它们复制到不同的位置。gydF4y2Ba

-double2singlegydF4y2Badouble2single_cfg_namegydF4y2Ba

的设置生成单精度MATLAB代码gydF4y2Ba编码器。SingleConfiggydF4y2Ba对象gydF4y2Badouble2single_cfg_namegydF4y2Ba指定。gydF4y2BacodegengydF4y2Ba在文件夹中生成文件gydF4y2Bacodegen /gydF4y2Bafcn_namegydF4y2Ba/单gydF4y2Ba.gydF4y2Ba

fcn_namegydF4y2Ba入口点函数的名称。gydF4y2Ba

当与gydF4y2Ba配置gydF4y2Ba选项,也生成单精度C/ c++代码。gydF4y2BacodegengydF4y2Ba在文件夹中生成单精度文件gydF4y2Bacodegen /gydF4y2Ba目标gydF4y2Ba/gydF4y2Bafolder_namegydF4y2Ba

.gydF4y2Ba目标gydF4y2Ba可以是:gydF4y2Ba

  • 墨西哥人gydF4y2Ba用于MEX功能gydF4y2Ba

  • exegydF4y2Ba可嵌入的C/ c++可执行文件gydF4y2Ba

  • 自由gydF4y2Ba用于嵌入式C/ c++库gydF4y2Ba

  • dllgydF4y2Ba用于C/ c++动态库gydF4y2Ba

folder_namegydF4y2Ba的级联gydF4y2Bafcn_namegydF4y2Ba而且gydF4y2BasinglesuffixgydF4y2Ba.gydF4y2Ba

singlesuffixgydF4y2Ba后缀是the吗gydF4y2Ba编码器。SingleConfiggydF4y2Ba财产gydF4y2BaOutputFileNameSuffixgydF4y2Ba指定。此文件夹中的单精度文件也具有此后缀。gydF4y2Ba

必须拥有定点设计器许可证才能使用此选项。gydF4y2Ba

-float2fixedgydF4y2Bafloat2fixed_cfg_namegydF4y2Ba

当与gydF4y2Ba配置gydF4y2Ba选项,使用浮点到定点转换配置对象的设置生成定点C/ c++代码gydF4y2Bafloat2fixed_cfg_namegydF4y2Ba指定。gydF4y2Ba

codegengydF4y2Ba在文件夹中生成文件gydF4y2Bacodegen /gydF4y2Ba目标gydF4y2Ba/gydF4y2Bafcn_namegydF4y2Ba_fixptgydF4y2Ba.gydF4y2Ba目标gydF4y2Ba可以是:gydF4y2Ba

  • 墨西哥人gydF4y2Ba用于MEX功能gydF4y2Ba

  • exegydF4y2Ba可嵌入的C/ c++可执行文件gydF4y2Ba

  • 自由gydF4y2Ba用于嵌入式C/ c++库gydF4y2Ba

  • dllgydF4y2Ba用于C/ c++动态库gydF4y2Ba

fcn_namegydF4y2Ba入口点函数的名称。gydF4y2Ba

当没有gydF4y2Ba配置gydF4y2Ba选项,使用浮点到定点转换配置对象命名的设置生成定点MATLAB代码gydF4y2Bafloat2fixed_cfg_namegydF4y2Ba指定。gydF4y2BacodegengydF4y2Ba在文件夹中生成文件gydF4y2Bacodegen /gydF4y2Bafcn_namegydF4y2Ba/ fixptgydF4y2Ba.gydF4y2Ba

您必须设置gydF4y2BaTestBenchNamegydF4y2Ba的属性gydF4y2Bafloat2fixed_cfg_namegydF4y2Ba.例如:gydF4y2Ba

fixptcfg。TestBenchName = 'myadd_test';gydF4y2Ba
指定gydF4y2Bamyadd_testgydF4y2Ba测试文件是浮点到定点配置对象吗gydF4y2BafixptcfggydF4y2Ba.gydF4y2Ba

必须拥有定点设计器许可证才能使用此选项。gydF4y2Ba

- ggydF4y2Ba

指定是否对C编译器使用调试选项。如果启用调试模式,C编译器将禁用一些优化。编译速度更快,但执行速度更慢。gydF4y2Ba

全局变量gydF4y2Baglobal_valuesgydF4y2Ba

在MATLAB文件中指定全局变量的名称和初始值。gydF4y2Ba

global_valuesgydF4y2Ba是包含全局变量名和初始值的单元格数组。的格式gydF4y2Baglobal_valuesgydF4y2Ba是:gydF4y2Ba

{g1, init1, g2, init2,…, gn, initn}gydF4y2Ba

gngydF4y2Ba指定为字符向量的全局变量的名称。gydF4y2BainitngydF4y2Ba是初始值。例如:gydF4y2Ba

-globals {'g', 5}gydF4y2Ba

或者,使用以下格式:gydF4y2Ba

-globals {global_var, {type, initial_value}}gydF4y2Ba

类型gydF4y2Ba类型对象。要创建类型对象,请使用gydF4y2Bacoder.typeofgydF4y2Ba.对于全局单元格数组变量,必须使用此格式。gydF4y2Ba

在使用gydF4y2BacodegengydF4y2Ba,初始化全局变量。属性未为全局变量提供初始值gydF4y2Ba全局变量gydF4y2Ba选项,gydF4y2BacodegengydF4y2Ba在MATLAB全局工作空间中检查变量。如果不提供初始值,gydF4y2BacodegengydF4y2Ba生成错误。gydF4y2Ba

MATLAB编码器gydF4y2Ba和MATLAB都有自己的全局数据副本。为了保持一致性,在两者交互时同步它们的全局数据。如果不同步数据,它们的全局变量可能不同。gydF4y2Ba

若要为全局变量指定常数值,请使用gydF4y2Ba编码器。常数gydF4y2Ba.例如:gydF4y2Ba

-globals {'g', code . constant (v)}gydF4y2Ba
指定gydF4y2BaggydF4y2Ba全局变量是常值吗gydF4y2BavgydF4y2Ba.gydF4y2Ba

-我gydF4y2Ba包含路径gydF4y2Ba

添加gydF4y2Ba包含路径gydF4y2Ba到代码生成路径的开头。当gydF4y2BacodegengydF4y2Ba搜索MATLAB函数和自定义C/ c++文件时,首先搜索代码生成路径。它不搜索代码生成路径上的类。类必须在MATLAB搜索路径上。gydF4y2Ba

空间gydF4y2Ba包含路径gydF4y2Ba可能导致某些操作系统配置中的代码生成失败。如果路径包含不是7位ASCII的字符,例如日本字符,则可能gydF4y2BacodegengydF4y2Ba没有在此路径上找到文件。gydF4y2Ba

jitgydF4y2Ba

使用即时(JIT)编译生成MEX函数。JIT编译可以加速MEX函数的生成。该选项仅适用于生成MEX函数。此选项与某些代码生成特性或选项不兼容,例如自定义代码或使用OpenMP库。gydF4y2Ba

-launchreportgydF4y2Ba

生成并打开一个代码生成报告。如果不指定此选项,gydF4y2BacodegengydF4y2Ba仅在出现错误或警告消息或指定gydF4y2Ba报告gydF4y2Ba选择。gydF4y2Ba

-nargoutgydF4y2Banumber_argsgydF4y2Ba

在生成的入口点函数中指定输出参数的数量。代码生成器按照它们在MATLAB函数定义中出现的顺序生成指定数量的输出参数。gydF4y2Ba

- ogydF4y2Baoutput_file_namegydF4y2Ba

生成具有基名的MEX函数、C/ c++库或C/ c++可执行文件gydF4y2Baoutput_file_namegydF4y2Ba加上一个扩展:gydF4y2Ba

  • .a或gydF4y2Ba. libgydF4y2Ba用于C/ c++静态库gydF4y2Ba

  • . exegydF4y2Ba或者没有C/ c++可执行文件的扩展gydF4y2Ba

  • . dllgydF4y2Ba用于微软的C/ c++动态库gydF4y2Ba®gydF4y2Ba窗户gydF4y2Ba®gydF4y2Ba系统gydF4y2Ba

  • 所以gydF4y2Ba用于Linux上的C/ c++动态库gydF4y2Ba®gydF4y2Ba系统gydF4y2Ba

  • . dylibgydF4y2Ba用于Mac系统上的C/ c++动态库gydF4y2Ba

  • 生成的MEX函数的平台依赖扩展gydF4y2Ba

output_file_namegydF4y2Ba可以是文件名,也可以包含现有路径。gydF4y2Baoutput_file_namegydF4y2Ba不能包含空格,因为空格在某些操作系统配置中可能导致代码生成失败。gydF4y2Ba

对于MEX功能,gydF4y2Baoutput_file_namegydF4y2Ba必须是有效的MATLAB函数名。gydF4y2Ba

如果未为库和可执行文件指定输出文件名,则基本名称为gydF4y2Bafcn_1gydF4y2Ba.gydF4y2Bafcn_1gydF4y2Ba是在命令行中指定的第一个MATLAB函数的名称。对于MEX函数,基名为gydF4y2Bafcn_1_mexgydF4y2Ba.您可以运行原始的MATLAB函数和MEX函数,并比较结果。gydF4y2Ba

- ogydF4y2Baoptimization_optiongydF4y2Ba

的值优化生成的代码gydF4y2Baoptimization_optiongydF4y2Ba:gydF4y2Ba

  • 启用:内联gydF4y2Ba—开启内联功能gydF4y2Ba

  • 禁用:内联gydF4y2Ba—禁用内联功能gydF4y2Ba

  • 启用:openmpgydF4y2Ba-如果可用,使用OpenMP库。使用OpenMP库,MEX函数或C/ c++代码gydF4y2BacodegengydF4y2Ba生成的gydF4y2BaparforgydF4y2Ba-loops可以在多个线程上运行。gydF4y2Ba

  • 禁用:openmpgydF4y2Ba—禁用OpenMP库。禁用OpenMP后,gydF4y2BacodegengydF4y2Ba对待gydF4y2BaparforgydF4y2Ba循环,gydF4y2Ba为gydF4y2Ba-循环并生成在单个线程上运行的MEX函数或C/ c++代码。gydF4y2Ba

指定gydF4y2Ba- ogydF4y2Ba在命令行中为每个优化执行一次。gydF4y2Ba

如果没有指定,gydF4y2BacodegengydF4y2Ba使用内联和OpenMP进行优化。gydF4y2Ba

-preservearraydimsgydF4y2Ba

生成使用n维索引的代码。有关更多信息,请参见gydF4y2Ba生成使用n维索引的代码gydF4y2Ba.gydF4y2Ba

配置文件gydF4y2Ba

通过使用MATLAB Profiler启用生成的MEX函数的分析。有关更多信息,请参见gydF4y2Ba利用MATLAB Profiler分析MEX函数gydF4y2Ba.gydF4y2Ba

报告gydF4y2Ba

生成一个代码生成报告。如果不指定此选项,gydF4y2BacodegengydF4y2Ba仅在出现错误或警告消息或指定gydF4y2Ba-launchreportgydF4y2Ba选择。gydF4y2Ba

如果您拥有嵌入式编码器许可证,此选项还启用代码替换和静态代码度量报告。gydF4y2Ba

-rowmajorgydF4y2Ba

生成使用行主数组布局的代码。列-主布局是默认的。有关更多信息,请参见gydF4y2Ba生成使用行主数组布局的代码gydF4y2Ba.gydF4y2Ba

-singleCgydF4y2Ba

生成单精度C/ c++代码。gydF4y2Ba

必须拥有定点设计器许可证才能使用此选项。gydF4y2Ba

以及gydF4y2Batest_filegydF4y2Ba

运行gydF4y2Batest_filegydF4y2Ba,将对原始MATLAB函数的调用替换为对MEX函数的调用。使用此选项与运行相同gydF4y2Bacoder.runTestgydF4y2Ba.gydF4y2Ba

该选项仅在生成MEX函数或使用万博1manbetx配置对象with时支持gydF4y2BaVerificationModegydF4y2Ba设置为gydF4y2Ba“银”gydF4y2Ba或gydF4y2Ba“公益诉讼”gydF4y2Ba.属性的配置对象的创建gydF4y2BaVerificationModegydF4y2Ba参数需要嵌入式编码器产品。gydF4y2Ba

定点转换或单精度转换不支持此选项。万博1manbetxgydF4y2Ba

- vgydF4y2Ba

启用详细模式以显示构建步骤。仅在生成库或可执行文件时使用。gydF4y2Ba

-?gydF4y2Ba

显示帮助gydF4y2BacodegengydF4y2Ba命令。gydF4y2Ba

project_namegydF4y2Ba

项目名称gydF4y2BaMATLAB编码器gydF4y2Ba你想要的项目gydF4y2BacodegengydF4y2Ba构建。项目名称不能包含空格。gydF4y2Ba

例子gydF4y2Ba

从适合代码生成的MATLAB函数生成MEX函数。gydF4y2Ba

  1. 写一个MATLAB函数,gydF4y2BacoderandgydF4y2Ba,该方法从开区间(0,1)上的标准均匀分布生成一个随机标量值。gydF4y2Ba

    函数gydF4y2BaR = coderand()gydF4y2Ba% # codegengydF4y2Ba指令%#codegen指示函数gydF4y2Ba%用于代码生成gydF4y2BaR = rand();gydF4y2Ba
  2. 生成并运行MEX函数。默认情况下,gydF4y2BacodegengydF4y2Ba生成的MEX函数的名称gydF4y2Bacoderand_mexgydF4y2Ba.gydF4y2Ba

    codegengydF4y2BacoderandgydF4y2Bacoderand_mexgydF4y2Ba

从适合代码生成的MATLAB函数生成C可执行文件。指定主C函数作为配置参数。gydF4y2Ba

  1. 写一个MATLAB函数,gydF4y2BacoderandgydF4y2Ba,该方法从开区间(0,1)上的标准均匀分布生成一个随机标量值。gydF4y2Ba

    函数gydF4y2BaR = coderand()gydF4y2Ba% # codegengydF4y2BaR = rand();gydF4y2Ba
  2. 写一个主C函数,gydF4y2Bac: \ 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
  3. 配置代码生成参数以包含主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

  1. 写一个MATLAB函数,gydF4y2BamcaddgydF4y2Ba,返回两个值的和。gydF4y2Ba

    函数gydF4y2BaY = McAdd (u,v)gydF4y2Ba% # codegengydF4y2BaY = u + v;gydF4y2Ba
  2. 在自定义文件夹中生成C库文件gydF4y2BamcaddlibgydF4y2Ba使用gydF4y2Ba配置:自由gydF4y2Ba选择。gydF4y2Ba

    codegengydF4y2Ba- dgydF4y2BamcaddlibgydF4y2Ba配置:自由gydF4y2BamcaddgydF4y2Baarg游戏gydF4y2Ba{0(1, 4,“uint16”),0}gydF4y2Ba

从接受定点输入的MATLAB函数生成C库文件。gydF4y2Ba

  1. 写一个MATLAB语言函数,gydF4y2BamcsqrtfigydF4y2Ba,它计算一个定点输入的平方根。gydF4y2Ba

    函数gydF4y2BaY = McSqrtfi (x)gydF4y2Ba% # codegengydF4y2BaY =√(x);gydF4y2Ba

  2. 定义gydF4y2BanumerictypegydF4y2Ba而且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

  1. 写一个MATLAB函数,gydF4y2Bause_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
  2. 生成MEX函数。默认情况下,gydF4y2BacodegengydF4y2Ba生成一个名为gydF4y2Bause_globals_mexgydF4y2Ba在当前文件夹中。属性在命令行中指定全局变量的属性gydF4y2Ba全局变量gydF4y2Ba选择。指定输入gydF4y2BaugydF4y2Ba是实数,标量,双精度,通过使用gydF4y2Baarg游戏gydF4y2Ba选择。gydF4y2Ba

    codegengydF4y2Ba全局变量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
编译该函数以生成一个名为gydF4y2Bause_globalsxgydF4y2Ba.gydF4y2Ba
codegengydF4y2Bause_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

  1. 写一个函数,gydF4y2BadisplayStategydF4y2Ba,它根据设备的状态使用枚举数据来激活LED显示屏。它会点亮一个绿色的LED显示屏,表示开启状态。它会点亮一个红色的LED显示屏来指示关闭状态。gydF4y2Ba

    函数gydF4y2Baled = displayState(状态)gydF4y2Ba% # codegengydF4y2Ba如果gydF4y2Bastate == sysMode。ON led = LEDcolor.GREEN;gydF4y2Ba其他的gydF4y2Baled = LEDcolor.RED;gydF4y2Ba结束gydF4y2Ba

  2. 定义一个枚举gydF4y2BaLEDColorgydF4y2Ba.在MATLAB路径中,创建一个名为“LEDColor”的文件,包含:gydF4y2Ba

    classdefgydF4y2BaLEDcolor < int32gydF4y2Ba枚举gydF4y2Ba绿(1),红(2),gydF4y2Ba结束gydF4y2Ba结束gydF4y2Ba

  3. 创建一个gydF4y2Ba编码器。EnumTypegydF4y2Ba对象使用现有MATLAB枚举中的值。gydF4y2Ba

    1. 定义一个枚举gydF4y2BasysModegydF4y2Ba.在MATLAB路径中,创建一个名为“sysMode”的文件,包含:gydF4y2Ba

      classdefgydF4y2BasysMode < int32gydF4y2Ba枚举gydF4y2Ba(0) (1)gydF4y2Ba结束gydF4y2Ba结束gydF4y2Ba

    2. 创建一个gydF4y2Ba编码器。EnumTypegydF4y2Ba从此枚举中获取。gydF4y2Ba

      t = code .typeof(sysMode.OFF);gydF4y2Ba

  4. 生成的MEX函数gydF4y2BadisplayStategydF4y2Ba.gydF4y2Ba

    codegengydF4y2BadisplayStategydF4y2Baarg游戏gydF4y2Ba{t}gydF4y2Ba

将浮点MATLAB代码转换为定点C代码gydF4y2Ba

本例需要定点设计器许可证。gydF4y2Ba

  1. 写一个MATLAB函数,gydF4y2BamyaddgydF4y2Ba,返回两个值的和。gydF4y2Ba

    函数gydF4y2BaY = myadd(u,v)gydF4y2Ba% # codegengydF4y2BaY = u + v;gydF4y2Ba结束gydF4y2Ba
  2. 写一个MATLAB函数,gydF4y2Bamyadd_testgydF4y2Ba,以测试gydF4y2BamyaddgydF4y2Ba.gydF4y2Ba

    函数gydF4y2BaY = myadd_testgydF4y2Ba% # codegengydF4y2BaY = myadd(10,20);gydF4y2Ba结束gydF4y2Ba
  3. 创建一个gydF4y2Ba编码器。FixptConfiggydF4y2Ba对象,gydF4y2BafixptcfggydF4y2Ba,使用默认设置。gydF4y2Ba

    Fixptcfg = code .config(gydF4y2Ba“fixpt”gydF4y2Ba);gydF4y2Ba
  4. 设置测试台名。gydF4y2Ba

    fixptcfg。TestBenchName =gydF4y2Ba“myadd_test”gydF4y2Ba;gydF4y2Ba
  5. 创建一个代码生成配置对象以生成一个独立的C静态库。gydF4y2Ba

    CFG = code .config(gydF4y2Ba“自由”gydF4y2Ba);gydF4y2Ba

  6. 方法生成代码gydF4y2Ba-float2fixedgydF4y2Ba选择。gydF4y2Ba

    codegengydF4y2Ba-float2fixedgydF4y2BafixptcfggydF4y2Ba配置gydF4y2BacfggydF4y2BamyaddgydF4y2Ba

将双精度MATLAB代码转换为单精度C代码。gydF4y2Ba

本例需要定点设计器许可证。gydF4y2Ba

假设gydF4y2BamyfunctiongydF4y2Ba接受两个双标量输入。使用gydF4y2Ba-singleCgydF4y2Ba选项生成单精度C/ c++代码。gydF4y2Ba

codegengydF4y2Ba-singleCgydF4y2BamyfunctiongydF4y2Baarg游戏gydF4y2Ba{1 2}gydF4y2Ba

提示gydF4y2Ba

  • 可以使用函数语法进行调用gydF4y2BacodegengydF4y2Ba.使用…的函数形式gydF4y2BacodegengydF4y2Ba,指定gydF4y2BacodegengydF4y2Ba参数作为字符向量或字符串标量。gydF4y2Ba

    例如:gydF4y2Ba

    codegen (gydF4y2Ba“myfunction”gydF4y2Ba,gydF4y2Ba“参数”gydF4y2Ba, {2 3},gydF4y2Ba“报告”gydF4y2Ba)gydF4y2Ba

  • 的命令形式提供字符串标量输入gydF4y2BacodegengydF4y2Ba能产生意想不到的结果。提供字符串标量作为示例输入或指定gydF4y2BacodegengydF4y2Ba参数作为字符串标量时,使用的函数形式gydF4y2BacodegengydF4y2Ba.gydF4y2Ba

    提供一个示例字符串标量输入值。gydF4y2Ba

    codegen (gydF4y2Ba“myfunction”gydF4y2Ba,gydF4y2Ba“参数”gydF4y2Ba,gydF4y2Ba“就是”gydF4y2Ba,gydF4y2Ba“报告”gydF4y2Ba)gydF4y2Ba

    指定gydF4y2BacodegengydF4y2Ba参数作为字符串标量。gydF4y2Ba

    codegen (gydF4y2Ba“myfunction”gydF4y2Ba,gydF4y2Ba“参数”gydF4y2Ba,gydF4y2Ba“就是”gydF4y2Ba,gydF4y2Ba“报告”gydF4y2Ba)gydF4y2Ba

选择gydF4y2Ba

使用gydF4y2Ba编码器gydF4y2Ba函数打开gydF4y2BaMATLAB编码器gydF4y2Ba应用程序,并创建gydF4y2BaMATLAB编码器gydF4y2Ba项目。该应用程序提供了一个用户界面,方便添加MATLAB文件,定义输入参数,并指定构建参数。gydF4y2Ba

在R2011a中引入gydF4y2Ba

这个话题有用吗?gydF4y2Ba