主要内容gydF4y2Ba

编码器.Constant类gydF4y2Ba

包:gydF4y2Ba编码器gydF4y2Ba
超类:gydF4y2Ba编码器.Type.gydF4y2Ba

为代码生成指定常量值gydF4y2Ba

描述gydF4y2Ba

使用一个gydF4y2Ba编码器.Constant.gydF4y2Ba对象定义在代码生成期间为常量的输入值。使用此对象与gydF4y2BacodegengydF4y2Baarg游戏gydF4y2Ba和gydF4y2Ba- 玻璃gydF4y2Ba选项,分别指定输入参数和全局变量的属性。不要将它作为输入传递给生成的MEX函数。gydF4y2Ba

你可以用gydF4y2Ba编码器.Constant.gydF4y2Ba对象代替一个gydF4y2Ba编码器.Type.gydF4y2Ba对象来在入口点输入或全局变量中指定给定的常量值。gydF4y2Ba

创建gydF4y2Ba

const_type = coder.constant(gydF4y2BavgydF4y2Ba)gydF4y2Ba创建一个gydF4y2Ba编码器.Constant.gydF4y2Ba键入gydF4y2BavgydF4y2Ba.gydF4y2Ba

const_type = coder.newtype(“常数”,gydF4y2BavgydF4y2Ba)gydF4y2Ba创建一个gydF4y2Ba编码器.Constant.gydF4y2Ba键入gydF4y2BavgydF4y2Ba.gydF4y2Ba

请注意gydF4y2Ba

创建了一个后gydF4y2Ba编码器.Constant.gydF4y2Ba对象,您可以通过使用具有值v的常量全局变量g创建常量全局变量ggydF4y2BacodegengydF4y2Ba命令:gydF4y2Bacodegen -globals {'g',coder.constant(v)}gydF4y2Ba.gydF4y2Ba

属性gydF4y2Ba

全部展开gydF4y2Ba

常量的实际值。还表示输入参数值gydF4y2BavgydF4y2Ba用于构造输入参数类型。gydF4y2Ba

这里,在第一个例子中,何时gydF4y2BakgydF4y2Ba是通过的gydF4y2BacodegengydF4y2Ba与价值gydF4y2BavgydF4y2Ba作为gydF4y2Ba42gydF4y2Ba,相应的输入类型被推断为双倍。同样,在第二个例子中,何时gydF4y2BakgydF4y2Ba是通过的gydF4y2BacodegengydF4y2Ba与价值gydF4y2BavgydF4y2Ba作为gydF4y2Ba42gydF4y2Ba,对应的输入类型被推断为uint8。gydF4y2Ba

例子:gydF4y2Bak = coder.Constant (42);gydF4y2Ba

例子:gydF4y2Bak = coder.Constant (uint8 (42));gydF4y2Ba

例子gydF4y2Ba

全部折叠gydF4y2Ba

写一个matlab.gydF4y2Ba®gydF4y2Ba功能gydF4y2Ba迈达德gydF4y2Ba返回两个值的和。gydF4y2Ba

功能gydF4y2Bac = myAdd (a, b)gydF4y2Ba% # codegengydF4y2BaC = a + b;gydF4y2Ba结束gydF4y2Ba

生成MEX功能gydF4y2BamyAdd_mexgydF4y2Ba.将输入参数指定为带值的常量gydF4y2Ba1gydF4y2Ba和gydF4y2Ba3.gydF4y2Ba.gydF4y2Ba

codegengydF4y2Ba迈达德gydF4y2Baarg游戏gydF4y2Ba{1,3}gydF4y2Ba-报告gydF4y2Ba

调用gydF4y2BamyAdd_mexgydF4y2Ba具有除此之外的恒定输入值gydF4y2Ba1gydF4y2Ba和gydF4y2Ba3.gydF4y2Ba, 例如,gydF4y2Ba2gydF4y2Ba和gydF4y2Ba5gydF4y2Ba.gydF4y2Ba

Myadd_mex(2,5)gydF4y2Ba
ans = 7gydF4y2Ba

的输入参数中指定的类型的任何常量值gydF4y2BacodegengydF4y2Ba命令。gydF4y2Ba

生成MEX功能gydF4y2BamyAdd_mexgydF4y2Ba通过指定gydF4y2Ba编码器.Constant.gydF4y2Ba对象作为输入参数之一。将第一个输入参数指定为双标量和第二个输入参数,作为具有值的常量gydF4y2Ba1gydF4y2Ba.gydF4y2Ba

codegengydF4y2Ba迈达德gydF4y2Baarg游戏gydF4y2Ba{1, coder.Constant (3)}gydF4y2Ba-报告gydF4y2Ba

调用gydF4y2BamyAdd_mexgydF4y2Ba具有恒定输入值gydF4y2Ba2gydF4y2Ba和gydF4y2Ba5gydF4y2Ba.gydF4y2Ba

Myadd_mex(2,5)gydF4y2Ba
常量函数参数'b'的运行时值与编译时值不同。myAdd_mex误差gydF4y2Ba

MEX功能显示输入值的错误gydF4y2Ba5gydF4y2Ba.要修复错误,请指定常量值gydF4y2Ba3.gydF4y2Ba,这是您在编译时传递的值。gydF4y2Ba

为具有常量输入的MATLAB函数生成MEX代码。使用gydF4y2BaConstantInputsgydF4y2Ba配置参数来控制MEX函数签名是否包含常量输入,以及常量输入值是否必须与编译时值匹配。gydF4y2Ba

写一个matlab函数gydF4y2Ba迈达德gydF4y2Ba返回两个值的和。gydF4y2Ba

功能gydF4y2Bac = myAdd (a, b)gydF4y2Ba% # codegengydF4y2BaC = a + b;gydF4y2Ba结束gydF4y2Ba

为MEX代码生成创建配置对象。gydF4y2Ba

mexcfg = coder.config (gydF4y2Ba墨西哥人的gydF4y2Ba);gydF4y2Ba

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

mexcfg。ConstantInputsgydF4y2Ba
ans ='签名'gydF4y2Ba

具有默认值。gydF4y2Ba

生成MEX功能gydF4y2BamyAdd_mexgydF4y2Ba.指定第一个参数是双标量,第二个参数是带值的常量gydF4y2Ba3.gydF4y2Ba.gydF4y2Ba

codegengydF4y2Ba迈达德gydF4y2Ba配置gydF4y2Bamexcfg.gydF4y2Baarg游戏gydF4y2Ba{1, coder.Constant (3)}gydF4y2Ba

调用gydF4y2BamyAdd_mexgydF4y2Ba.提供输入gydF4y2Ba3.gydF4y2Ba对于第二个论证。gydF4y2Ba

myadd_mex(1、3)gydF4y2Ba
ans = 4gydF4y2Ba

调整gydF4y2BaConstantInputsgydF4y2Ba这样,MEX函数就不会检查输入值是否与代码生成时指定的值匹配。gydF4y2Ba

mexcfg。ConstantInputs =gydF4y2Ba“IgnoreValues”gydF4y2Ba;gydF4y2Ba

生成gydF4y2BamyAdd_mexgydF4y2Ba.gydF4y2Ba

codegengydF4y2Ba迈达德gydF4y2Ba配置gydF4y2Bamexcfg.gydF4y2Baarg游戏gydF4y2Ba{1, coder.Constant (3)}gydF4y2Ba

调用gydF4y2BamyAdd_mexgydF4y2Ba使用常数输入值gydF4y2Ba3.gydF4y2Ba例如,gydF4y2Ba5gydF4y2Ba.gydF4y2Ba

myadd_mex(1、5)gydF4y2Ba
ans = 4gydF4y2Ba

MEX函数忽略输入值gydF4y2Ba5gydF4y2Ba.它使用这个值gydF4y2Ba3.gydF4y2Ba,这是您为常量参数指定的值gydF4y2BabgydF4y2Ba当你生成gydF4y2BamyAdd_mexgydF4y2Ba.gydF4y2Ba

调整gydF4y2BaConstantInputsgydF4y2Ba以便MEX函数签名不包含常量输入参数。gydF4y2Ba

mexcfg。ConstantInputs =gydF4y2Ba“删除”gydF4y2Ba;gydF4y2Ba

生成gydF4y2BamyAdd_mexgydF4y2Ba.gydF4y2Ba

codegengydF4y2Ba迈达德gydF4y2Ba配置gydF4y2Bamexcfg.gydF4y2Baarg游戏gydF4y2Ba{1, coder.Constant (3)}gydF4y2Ba

调用gydF4y2BamyAdd_mexgydF4y2Ba.提供的价值gydF4y2Ba1gydF4y2Ba为gydF4y2Ba一个gydF4y2Ba.不为常量参数提供值gydF4y2BabgydF4y2Ba.gydF4y2Ba

Myadd_mex(1)gydF4y2Ba
ans = 4gydF4y2Ba

为输入具有常量值的函数生成C代码。gydF4y2Ba

写一个matlab函数gydF4y2Ba身份gydF4y2Ba将其输入副本复制到其输出。gydF4y2Ba

功能gydF4y2Bay =身份(u)gydF4y2Ba% # codegengydF4y2Bay = u;gydF4y2Ba

为C代码生成创建一个代码配置对象。gydF4y2Ba

cfg = coder.config (gydF4y2Ba“自由”gydF4y2Ba);gydF4y2Ba

生成C代码gydF4y2Ba身份gydF4y2Ba恒定输入gydF4y2Ba42gydF4y2Ba,然后生成报告。gydF4y2Ba

codegengydF4y2Ba身份gydF4y2Ba配置gydF4y2BacfggydF4y2Baarg游戏gydF4y2Ba{coder.constant(42)}gydF4y2Ba-报告gydF4y2Ba

在报告中,关于gydF4y2BaC代码gydF4y2Ba选项卡上,单击gydF4y2Baidentity.cgydF4y2Ba.gydF4y2Ba

的函数签名gydF4y2Ba身份gydF4y2Ba是:gydF4y2Ba

双重身份(空白)gydF4y2Ba

在编译时指定全局变量的常量值。gydF4y2Ba

写一个matlab函数gydF4y2BamyFunctiongydF4y2Ba返回全局常量的值gydF4y2BaggydF4y2Ba.gydF4y2Ba

功能gydF4y2Bay = myFunction ()gydF4y2Ba% # codegengydF4y2Ba全球gydF4y2Bag;y = g;gydF4y2Ba结束gydF4y2Ba

为MEX代码生成创建配置对象。gydF4y2Ba

cfg = coder.config (gydF4y2Ba墨西哥人的gydF4y2Ba);gydF4y2Ba

定义单元格数组gydF4y2Ba全局变量gydF4y2Ba声明,gydF4y2BaggydF4y2Ba是一个具有值的常量全局变量吗gydF4y2Ba5gydF4y2Ba.gydF4y2Ba

全局变量= {gydF4y2Ba‘g’gydF4y2Ba, coder.Constant (5)};gydF4y2Ba

为生成一个MEX函数gydF4y2BamyFunctiongydF4y2Ba通过使用gydF4y2Ba- 玻璃gydF4y2Ba选项指定全局数据。gydF4y2Ba

codegengydF4y2Ba配置gydF4y2BacfggydF4y2Ba- 玻璃gydF4y2Ba全局变量gydF4y2BamyFunctiongydF4y2Ba

运行生成的MEX函数。gydF4y2Ba

myFunction_mexgydF4y2Ba
ans = 5gydF4y2Ba

限制gydF4y2Ba

  • 你不能使用gydF4y2Ba编码器.Constant.gydF4y2Ba在稀疏矩阵上,或在包含稀疏矩阵的结构、单元格数组或类上。gydF4y2Ba

在R2011A介绍gydF4y2Ba