2016-11-29 174 views

回答

2

为了补充罗迪的回答中,有四种方式,你可以这样做:

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

不在函数签名上。通常情况下,您通过断言块做到这一点:

function (obj, param) 

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