codegen
命令等效MATLAB编码器项目你可以使用codegen
命令-toproject
转换a的选项codegen
命令转换为等价物MATLAB®编码器™项目文件。然后,您可以使用另一个文件从项目文件生成代码codegen
命令或MATLAB编码器应用程序。
例如,转换acodegen
带输入参数的命令input_arguments
到项目文件myProject.prj
运行:
codegeninput_arguments-toprojectmyProject.prj
输入参数codegen
包括:
入口点函数的名称
属性指定的输入类型定义arg游戏
选项
代码生成选项,包括在配置对象中指定的参数
要包含在生成代码中的自定义源文件的名称
你也可以用the-toproject
转换不完整的选项codegen
命令到项目文件。例如,创建一个项目文件myProjectTemplate.prj
只包含存储在配置对象中的代码生成参数cfg
运行:
codegen配置cfg-toprojectmyProjectTemplate.prj
myProjectTemplate.prj
不包含入口点函数或输入类型的说明。因此,您不能从这个项目文件生成代码。您可以打开myProjectTemplate.prj
在里面MATLAB编码器应用程序,并使用它作为模板来创建完整的项目文件,您可以使用它来生成代码。
请注意
运行codegen
命令-toproject
选项不生成代码。它只创建项目文件。
codegen
命令到项目文件定义一个MATLAB函数,myadd
,返回两个值的总和。
函数Y = Myadd(U,V)% # codegenY = u + v;结束
创建一个编码器。CodeConfig
对象,用于生成静态库。集TargetLang
来“c++”
.
cfg = coder.config (“自由”);cfg。TargetLang =“c++”;
在MATLAB命令行中,创建并运行一个codegen
命令。指定myadd
作为入口点函数。指定输入myadd
类型为可变大小的矩阵双
它的尺寸是无界的。指定cfg
作为代码配置对象。包括-toproject
转换的选项codegen
命令转换为等价物MATLAB编码器带有名称的项目文件myadd_project.prj
.
codegen配置cfgmyaddarg游戏{coder.typeof(1,[INF,INF]),Coder.typeof(1,[Inf,Inf])}-toprojectmyadd_project.prj
项目文件'myadd_project.prj'已成功创建。开放项目
代码生成器创建项目文件myadd_project.prj
在当前工作文件夹中。运行codegen
与之-toproject
选项不生成代码。它只创建项目文件。
生成代码myadd_project.prj
通过使用另一个codegen
命令。
codegenmyadd_project.prj
代码生成器生成一个c++静态库函数myadd
在里面
文件夹,工作
\ codegen \ lib \ myadd
是当前工作目录。工作
codegen
命令到模板项目文件创建一个编码器。CodeConfig
对象,用于生成静态库。集TargetLang
来“c++”
.
cfg = coder.config (“自由”);cfg。TargetLang =“c++”;
在MATLAB命令行中,创建并运行一个codegen
命令。指定cfg
作为代码配置对象。包括-toproject
转换的选项codegen
命令转换为等价物MATLAB编码器带有名称的项目文件myProjectTemplate.prj
.
codegen配置cfg-toprojectmyProjectTemplate.prj
项目文件的myProjectTemplate。成功创建Prj。开放项目
你现在可以打开myProjectTemplate.prj
在里面MATLAB编码器应用程序,并使用它作为模板来创建完整的项目文件,您可以使用它来生成代码。
当你使用codegen
命令-toproject
选项,这些限制适用于:
导出CodeTemplate
参数的编码器。EmbeddedCodeConfig
不支持指向项目文件的对象。金宝app
假设你的codegen
命令用于生成MEX函数编码器。常数
定义一个常量输入为fi
(定点设计师)对象obj
.
某些fi
对象属性由其他属性启用。当你建造一个fi
对象,除非您显式修改它们,否则这些属性将设置为其默认值。在obj
,将未启用的一个或多个属性设置为非默认值。看到fi对象属性(定点设计师).
你转换了这一点codegen
命令更改项目文件-toproject
选项。您构建项目文件并生成MEX功能。当你通过时obj
作为生成的MEX函数的常量输入参数并运行MEX,MEX可能会抛出错误。
要修复此问题,您必须设置属性obj
在将其传递给MEX函数之前未启用其默认值。为此,定义一个newfi
对象obj_new
:
一个= mat2str (obj);obj_new = eval ();
通过obj_new
作为生成的MEX函数的常量输入。