将Matlab函数参数设置为uint8

时间:2016-11-29 07:18:15

标签: matlab

在Matlab中可以说出函数的期望吗?像这样的东西:

function functionA( obj,  uint8(param) )

这里我说的是函数需要一个类型为uint8的参数。

2 个答案:

答案 0 :(得分:6)

不在功能签名上。通常,您通过断言块执行此操作:

function (obj, param)

    assert(isa(param, 'uint8'),...
           [mfilename ':invalid_datatype'],...
           'Parameter ''param'' must be of class ''uint8''; received ''%s''.',...
           class(param));

答案 1 :(得分:2)

为了补充Rody的答案,有四种方法可以做到这一点:

  1. 如果参数不是预期类型,请使用条件并引发异常。这种方法的问题是你必须编写很多代码。
  2. 使用断言。请参阅Rody的答案或here。人们可以争辩说,这不是断言应该用于什么,但你肯定可以这样使用它们。
  3. 使用validateattributes功能。见here。这是简单性和实用性之间的非常好的平衡。它允许您检查参数中的许多属性(通常是代码的任何部分的任何变量)
  4. 使用inputParser课程。见here。这是解析输入的最强大的方法,但可能有点过分。此外,创建inputParser对象的成本意味着对于重复调用的函数可能不是一个好主意。然而,它对公共API非常有用。