转换codegen
命令到等效MATLAB编码器项目
您可以使用codegen
命令使用-toproject
选项来转换codegen
命令到等价的MATLAB®编码器™项目文件。然后,您可以使用另一个项目文件从该项目文件生成代码codegen
命令或MATLAB编码器应用程序。
例如,要转换acodegen
带有输入参数的命令input_arguments
到项目文件myProject.prj
运行:
codegeninput_arguments-toprojectmyProject.prj
输入参数到codegen
包括:
入口点函数的名称
类型指定的输入类型定义
arg游戏
选项代码生成选项,包括在配置对象中指定的参数
要包含在生成代码中的自定义源文件的名称
你也可以使用-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 = code .config(“自由”);cfg。TargetLang =“c++”;
在MATLAB命令行中,创建并运行一个codegen
命令。指定myadd
作为入口点函数。指定输入myadd
作为可变大小的类型矩阵双
它的维度是无界的。指定cfg
作为代码配置对象。包括-toproject
选项来转换codegen
命令到等价的MATLAB编码器带名称的项目文件myadd_project.prj
.
codegen配置cfgmyaddarg游戏{coder.typeof([正无穷,正无穷]),coder.typeof(1[正无穷,正无穷])}-toprojectmyadd_project.prj
项目文件myadd_project。Prj '成功创建。开放项目
代码生成器创建项目文件myadd_project.prj
在当前工作文件夹中。运行codegen
与-toproject
选项不生成代码。它只创建项目文件。
从myadd_project.prj
通过使用另一个codegen
命令。
codegenmyadd_project.prj
代码生成器生成一个c++静态库函数myadd
在
文件夹,工作
\ codegen \ lib \ myadd
当前工作目录。工作
示例:转换Incompletecodegen
命令到模板项目文件
创建一个编码器。CodeConfig
对象用于生成静态库。集TargetLang
来“c++”
.
CFG = code .config(“自由”);cfg。TargetLang =“c++”;
在MATLAB命令行中,创建并运行一个codegen
命令。指定cfg
作为代码配置对象。包括-toproject
选项来转换codegen
命令到等价的MATLAB编码器带名称的项目文件myProjectTemplate.prj
.
codegen配置cfg-toprojectmyProjectTemplate.prj
项目文件myProjectTemplate。Prj '成功创建。开放项目
现在你可以打开myProjectTemplate.prj
在MATLAB编码器应用程序,并将其用作模板,以创建可用于生成代码的完整项目文件。
限制
当你使用codegen
命令使用-toproject
选项,这些限制适用:
导出
CodeTemplate
a的参数编码器。EmbeddedCodeConfig
对象添加到项目文件中不支持。金宝app假设你的
codegen
命令用于生成MEX功能编码器。常数
定义一个常量输入afi
(定点设计师)对象obj
.某些
fi
对象属性由其他属性启用。当你构造一个fi
对象时,这些属性将被设置为默认值,除非显式地修改它们。在obj
,将一个或多个未启用的属性设置为非默认值。看到fi对象属性(定点设计师).你转换这个
codegen
命令添加到项目文件-toproject
选择。构建项目文件并生成一个MEX函数。当你经过obj
作为生成的MEX函数的常量输入参数并运行MEX,则MEX可能会抛出错误。的属性,以解决此问题
obj
在将其传递给MEX函数之前,未启用其默认值。为此,定义一个newfi
对象obj_new
:A = mat2str(obj);Obj_new = eval(a);
通过
obj_new
作为生成的MEX函数的常量输入。