文件GydF4y2Ba

编码器.Constant类GydF4y2Ba

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

表示包含1的集合GydF4y2Ba马铃薯草GydF4y2Ba价值GydF4y2Ba

描述GydF4y2Ba

用一个GydF4y2Ba编码器.Constant.GydF4y2Ba对象以定义代码生成期间常量的值。仅使用GydF4y2BaCodegen.GydF4y2Ba- args.GydF4y2Ba选项。不要将作为生成的MEX函数的输入传递。GydF4y2Ba

建造GydF4y2Ba

const_type = coder.constant(GydF4y2BaV.GydF4y2Ba的)GydF4y2Ba创造一个GydF4y2Ba编码器.Constant.GydF4y2Ba值的类型GydF4y2BaV.GydF4y2Ba。GydF4y2Ba

codegen -globals {'g',coder.constant(GydF4y2BaV.GydF4y2Ba)}GydF4y2Ba创建一个常量的全局变量GydF4y2BaGGydF4y2Ba有价值GydF4y2BaV.GydF4y2Ba。GydF4y2Ba

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

输入参数GydF4y2Ba

V.GydF4y2Ba

用于构造类型的常量值。GydF4y2Ba

特性GydF4y2Ba

价值GydF4y2Ba

常量的实际值。GydF4y2Ba

复制语义GydF4y2Ba

价值。要了解值类如何影响复制操作,请参见GydF4y2Ba复制对象GydF4y2Ba(MATLAB)。GydF4y2Ba

例子GydF4y2Ba

全部收缩GydF4y2Ba

这个例子展示了如何为MATLAB生成MEX代码GydF4y2Ba®GydF4y2Ba具有恒定输入的功能。它展示了如何使用GydF4y2BaConstantinputs.GydF4y2Ba配置参数要控制MEX函数签名是否包括恒定输入以及恒定输入值是否必须匹配编译时值。GydF4y2Ba

写一个功能GydF4y2Ba迈达德GydF4y2Ba返回其输入的总和。GydF4y2Ba

函数GydF4y2BaC = MyAdd(a,b)c = 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.GydF4y2Ba迈达德GydF4y2Ba-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.GydF4y2Ba迈达德GydF4y2Ba-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.GydF4y2Ba迈达德GydF4y2Ba-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

写一个功能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

写一个功能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编码器.Constant.GydF4y2Ba在稀疏矩阵上,或在包含稀疏矩阵的结构,单元阵列或类上。GydF4y2Ba

在R2011A介绍GydF4y2Ba

这个话题有用吗?GydF4y2Ba