主要内容

MEX函数中的常量输入检查

当为生成MEX函数指定常量输入参数时,默认情况下,生成的MEX函数签名包括此参数。当您调用MEX函数时,它将检查您为常量参数提供的值是否为代码生成时指定的值。

要生成未检查常量输入值的MEX函数,或者不包含常量输入参数,请修改常量输入检查配置参数:

  • 如果你使用MATLAB®编码器™应用:

    1. 生成代码页面,设置构建类型梅克斯

    2. 点击更多的设置

    3. 所有设置选项卡,设置常数输入到表中的一个值。

  • 如果你使用codegen在MEX配置对象中设置ConstantInputs属性设置为表中的一个值。

常数输入(应用) ConstantInputs(配置对象) 描述

在运行时检查值

“CheckValues”

该值为默认值。

当您调用MEX函数时,它将检查您为常量输入参数提供的值是否为代码生成时指定的值。

您可以使用相同的参数调用MEX函数和原始的MATLAB函数。因此,您可以对两个函数使用相同的测试文件。

检查值可以添加到MEX函数的执行时间。

忽略输入值

“IgnoreValues”

当调用MEX函数时,它会忽略为常量输入参数提供的值。它使用代码生成时指定的值。

您可以使用相同的测试文件,而无需检查常量参数值的开销。

从MEX签名中删除

“删除”

代码生成器从MEX函数签名中删除常量输入参数。调用MEX函数时,不为常量输入参数提供值。

此选项用于向后兼容。

控制MEX函数是否检查常量输入的值

控件的使用方法ConstantInputs参数来控制MEX函数是否检查常量输入参数的值。

写一个函数myadd返回其输入的和。

函数C = myadd(a,b) C = a + b;结束

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

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

看看常量输入检查配置参数的值,ConstantInputs

mexcfg。ConstantInputs
ans ='签名'

它有默认值,CheckValues

生成一个MEX函数myadd_mex.指定第一个参数是双标量,第二个参数是一个常量值3.

codegenmyadd配置mexcfgarg游戏{1, coder.Constant (3)}
代码生成成功。

调用myadd_mex.您必须提供输入3.对于第二个论点。

myadd_mex(1、3)
ans = 4

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

mexcfg。ConstantInputs =“IgnoreValues”

生成myadd_mex

codegenmyadd配置mexcfgarg游戏{1, coder.Constant (3)}
代码生成成功。

调用myadd_mex的常量输入值3., 例如,5

myadd_mex(1、5)
ans = 4

MEX函数忽略输入值5.它使用值3.,这是您为常量参数指定的值b当你生成myadd_mex

修改ConstantInputs以便MEX函数签名不包括常量输入参数。

mexcfg。ConstantInputs =“删除”

生成myadd_mex

codegenmyadd配置mexcfgarg游戏{1, coder.Constant (3)}
代码生成成功。

调用myadd_mex.提供的价值1一个.不为常量参数提供值b

myadd_mex (1)
ans = 4

另请参阅

相关话题