主要内容GydF4y2Ba

编码器。定类GydF4y2Ba

包裹:GydF4y2Ba编码器GydF4y2Ba
超类:GydF4y2Ba编码器。类型GydF4y2Ba

代码生成规范GydF4y2Ba

描述GydF4y2Ba

用一个GydF4y2Ba编码器。常数GydF4y2Ba对象以定义在代码生成期间的输入值。使用此对象GydF4y2BaCodegen.GydF4y2Ba- args.GydF4y2Ba和GydF4y2Ba全局变量GydF4y2Ba分别指定输入参数和全局变量的属性的选项。请勿将其作为对生成的MEX功能的输入。GydF4y2Ba

你可以使用一个GydF4y2Ba编码器。常数GydF4y2Ba对象代替一个GydF4y2Ba编码器。类型GydF4y2Ba对象以在入口点输入或全局变量中指定给定的常量值。GydF4y2Ba

创建GydF4y2Ba

const_type =编码器。常数(GydF4y2BaV.GydF4y2Ba)GydF4y2Ba创造一个GydF4y2Ba编码器。常数GydF4y2Ba值的类型GydF4y2BaV.GydF4y2Ba。GydF4y2Ba

const_type = coder.newtype('constant',GydF4y2BaV.GydF4y2Ba)GydF4y2Ba创造一个GydF4y2Ba编码器。常数GydF4y2Ba值的类型GydF4y2BaV.GydF4y2Ba。GydF4y2Ba

笔记GydF4y2Ba

创建GydF4y2Ba编码器。常数GydF4y2Ba对象,可以创建一个值为v的全局常量g,方法是使用GydF4y2BaCodegen.GydF4y2Ba命令:GydF4y2Bacodegen -globals {'g', coder.Constant(v)}GydF4y2Ba。GydF4y2Ba

特性GydF4y2Ba

展开全部GydF4y2Ba

常数的实际值。也指示输入参数值GydF4y2BaV.GydF4y2Ba用于构造输入参数类型。GydF4y2Ba

在第一个例子中,当GydF4y2BaK.GydF4y2Ba通过了GydF4y2BaCodegen.GydF4y2Ba价值GydF4y2BaV.GydF4y2Ba作为GydF4y2Ba42.GydF4y2Ba,对应的输入类型被推断为double。类似地,在第二个例子中,当GydF4y2BaK.GydF4y2Ba通过了GydF4y2BaCodegen.GydF4y2Ba价值GydF4y2BaV.GydF4y2Ba作为GydF4y2Ba42.GydF4y2Ba,相应的输入类型被推断为UINT8。GydF4y2Ba

例子:GydF4y2Bak =编码器.Constant(42);GydF4y2Ba

例子:GydF4y2Bak =编码器.Constant(UINT8(42));GydF4y2Ba

例子GydF4y2Ba

全部收缩GydF4y2Ba

写一个MATLABGydF4y2Ba®GydF4y2Ba函数GydF4y2BamyAddGydF4y2Ba返回两个值的总和。GydF4y2Ba

函数GydF4y2BaC = Myadd(A,B)GydF4y2Ba%#codegen.GydF4y2Bac = a + b;GydF4y2Ba结尾GydF4y2Ba

生成MEX函数GydF4y2Bamyadd_mex.GydF4y2Ba。使用值指定输入参数作为常量GydF4y2Ba1GydF4y2Ba和GydF4y2Ba3.GydF4y2Ba。GydF4y2Ba

Codegen.GydF4y2BamyAddGydF4y2Ba-  args.GydF4y2Ba{1,3}GydF4y2Ba报告GydF4y2Ba

称呼GydF4y2Bamyadd_mex.GydF4y2Ba常量输入值不是GydF4y2Ba1GydF4y2Ba和GydF4y2Ba3.GydF4y2Ba例如,GydF4y2Ba2GydF4y2Ba和GydF4y2Ba5.GydF4y2Ba。GydF4y2Ba

myAdd_mex(2、5)GydF4y2Ba
ans = 7.GydF4y2Ba

生成的MEX函数接受您在输入参数中指定的类型的任何常量值GydF4y2BaCodegen.GydF4y2Ba命令。GydF4y2Ba

生成MEX函数GydF4y2Bamyadd_mex.GydF4y2Ba通过指定GydF4y2Ba编码器。常数GydF4y2Ba对象作为输入参数之一。将第一个输入参数指定为双标量,将第二个输入参数指定为带值的常量GydF4y2Ba1GydF4y2Ba。GydF4y2Ba

Codegen.GydF4y2BamyAddGydF4y2Ba-  args.GydF4y2Ba{1,编码器.Constant(3)}GydF4y2Ba报告GydF4y2Ba

称呼GydF4y2Bamyadd_mex.GydF4y2Ba输入值不变GydF4y2Ba2GydF4y2Ba和GydF4y2Ba5.GydF4y2Ba。GydF4y2Ba

myAdd_mex(2、5)GydF4y2Ba
常量函数参数'B'具有比编译时间值不同的运行时间值。myadd_mex错误GydF4y2Ba

MEX函数显示输入值的错误GydF4y2Ba5.GydF4y2Ba。要修复错误,请分配常量值GydF4y2Ba3.GydF4y2Ba,这是您在编译时传递的值。GydF4y2Ba

为具有恒定输入的MATLAB函数生成MEX代码。使用GydF4y2BaConstantinputs.GydF4y2Ba配置参数来控制MEX函数签名是否包括恒定输入以及恒定输入值是否必须匹配编译时值。GydF4y2Ba

编写MATLAB函数GydF4y2BamyAddGydF4y2Ba返回两个值的总和。GydF4y2Ba

函数GydF4y2BaC = Myadd(A,B)GydF4y2Ba%#codegen.GydF4y2Bac = a + b;GydF4y2Ba结尾GydF4y2Ba

为MEX代码生成创建一个配置对象。GydF4y2Ba

mexcfg = coder.config(GydF4y2Ba'mex'GydF4y2Ba);GydF4y2Ba

检查常量输入检查配置参数的值。GydF4y2Ba

mexcfg.constantinputs.GydF4y2Ba
ans = ' CheckValues 'GydF4y2Ba

它具有默认值。GydF4y2Ba

生成MEX函数GydF4y2Bamyadd_mex.GydF4y2Ba。指定第一个参数是双标量,第二个参数是一个常量值GydF4y2Ba3.GydF4y2Ba。GydF4y2Ba

Codegen.GydF4y2BamyAddGydF4y2Ba-Config.GydF4y2Bamexcfg.GydF4y2Ba-  args.GydF4y2Ba{1,编码器.Constant(3)}GydF4y2Ba

称呼GydF4y2Bamyadd_mex.GydF4y2Ba。提供输入GydF4y2Ba3.GydF4y2Ba对于第二个论点。GydF4y2Ba

Myadd_mex(1,3)GydF4y2Ba
ans = 4.GydF4y2Ba

修改GydF4y2BaConstantinputs.GydF4y2Ba因此,MEX函数不会检查输入值与代码生成时间指定的值匹配。GydF4y2Ba

mexcfg.constantinputs =GydF4y2Ba'IgnoreValues'GydF4y2Ba;GydF4y2Ba

产生GydF4y2Bamyadd_mex.GydF4y2Ba。GydF4y2Ba

Codegen.GydF4y2BamyAddGydF4y2Ba-Config.GydF4y2Bamexcfg.GydF4y2Ba-  args.GydF4y2Ba{1,编码器.Constant(3)}GydF4y2Ba

称呼GydF4y2Bamyadd_mex.GydF4y2Ba以外的恒定输入值GydF4y2Ba3.GydF4y2Ba, 例如GydF4y2Ba5.GydF4y2Ba。GydF4y2Ba

Myadd_mex(1,5)GydF4y2Ba
ans = 4.GydF4y2Ba

MEX函数忽略输入值GydF4y2Ba5.GydF4y2Ba。它使用该值GydF4y2Ba3.GydF4y2Ba,它是为常量参数指定的值GydF4y2BaB.GydF4y2Ba当你生成时GydF4y2Bamyadd_mex.GydF4y2Ba。GydF4y2Ba

修改GydF4y2BaConstantinputs.GydF4y2Ba因此MEX函数签名不包括常量输入参数。GydF4y2Ba

mexcfg.constantinputs =GydF4y2Ba'消除'GydF4y2Ba;GydF4y2Ba

产生GydF4y2Bamyadd_mex.GydF4y2Ba。GydF4y2Ba

Codegen.GydF4y2BamyAddGydF4y2Ba-Config.GydF4y2Bamexcfg.GydF4y2Ba-  args.GydF4y2Ba{1,编码器.Constant(3)}GydF4y2Ba

称呼GydF4y2Bamyadd_mex.GydF4y2Ba。提供价值GydF4y2Ba1GydF4y2Ba为了GydF4y2Ba一种GydF4y2Ba。不要为常量参数提供价值GydF4y2BaB.GydF4y2Ba。GydF4y2Ba

myAdd_mex (1)GydF4y2Ba
ans = 4.GydF4y2Ba

为专门针对输入具有恒定值的情况的函数生成C代码。GydF4y2Ba

编写MATLAB函数GydF4y2Ba身份GydF4y2Ba它把输入复制到输出。GydF4y2Ba

函数GydF4y2BaY =身份(U)GydF4y2Ba%#codegen.GydF4y2Bay = u;GydF4y2Ba

为C代码生成创建代码配置对象。GydF4y2Ba

cfg = coder.config(GydF4y2Ba'lib'GydF4y2Ba);GydF4y2Ba

生成C代码GydF4y2Ba身份GydF4y2Ba输入是常数GydF4y2Ba42.GydF4y2Ba,然后生成报告。GydF4y2Ba

Codegen.GydF4y2Ba身份GydF4y2Ba-Config.GydF4y2BaCFG.GydF4y2Ba-  args.GydF4y2Ba{coder.Constant (42)}GydF4y2Ba报告GydF4y2Ba

在报告中,在GydF4y2BaC代码GydF4y2Ba选项卡,单击GydF4y2BaIdentity.c.GydF4y2Ba。GydF4y2Ba

函数签名GydF4y2Ba身份GydF4y2Ba是:GydF4y2Ba

双重身份(无效)GydF4y2Ba

在编译时为全局变量指定常量值。GydF4y2Ba

编写MATLAB函数GydF4y2Bamyfunction.GydF4y2Ba返回全局常量的值GydF4y2BaGGydF4y2Ba。GydF4y2Ba

函数GydF4y2Bay = myfunction()GydF4y2Ba%#codegen.GydF4y2Ba全球的GydF4y2BaG;y = g;GydF4y2Ba结尾GydF4y2Ba

为MEX代码生成创建一个配置对象。GydF4y2Ba

cfg = coder.config(GydF4y2Ba'mex'GydF4y2Ba);GydF4y2Ba

定义单元格数组GydF4y2Ba全局GydF4y2Ba这宣称GydF4y2BaGGydF4y2Ba是一个恒定的全局变量,有价值GydF4y2Ba5.GydF4y2Ba。GydF4y2Ba

globals = {GydF4y2Ba'G'GydF4y2Ba,编码器.Constant(5)};GydF4y2Ba

生成MEX功能GydF4y2Bamyfunction.GydF4y2Ba通过使用GydF4y2Ba全局变量GydF4y2Ba选项指定全局数据。GydF4y2Ba

Codegen.GydF4y2Ba-Config.GydF4y2BaCFG.GydF4y2Ba全局变量GydF4y2Ba全局GydF4y2Bamyfunction.GydF4y2Ba

运行生成的mex函数。GydF4y2Ba

myfunction_mex.GydF4y2Ba
ans = 5GydF4y2Ba

限制GydF4y2Ba

  • 你不能使用GydF4y2Ba编码器。常数GydF4y2Ba在稀疏矩阵或包含稀疏矩阵的结构,单元阵列或类上。GydF4y2Ba

介绍了R2011aGydF4y2Ba