验证必需和可选位置参量
位置参量是在函数声明中定义位置和顺序的参量。参量列表中传递的值的位置必须对应于参量在 arguments
代码块中声明的顺序。arguments
代码块中的所有参量名称必须唯一。
调用函数时,arguments
代码块中的位置参量为必需,除非此参量定义了默认值。在参量声明中指定默认值会使位置参量成为可选参量,因为 MATLAB® 可以在函数调用中没有传递值时使用默认值。
为可选参量设置默认值
默认值可以是常量,也可以是结果满足参量声明的表达式。表达式可以引用在 arguments
代码块中在该表达式之前声明的参量,但无法引用在它后面声明的参量。
MATLAB 仅在函数调用不包含某参量时才计算其默认值表达式。
所有可选参量都必须位于 arguments
代码块中的所有必需参量后。例如,在此参量代码块中,maxval
和 minval
具有默认值,因此是可选的。
function myFunction(x,y,maxval,minval) arguments x (1,:) double y (1,:) double maxval (1,1) double = max(max(x),max(y)) minval (1,1) double = min(min(x),min(y)) end % Function code .... end
您可以使用以下任意语法调用此函数:
myFunction(x,y,maxval,minval) myFunction(x,y,maxval) myFunction(x,y)
如果必须在函数调用中填充某可选位置参量的位置以标识其后的参量,则该可选位置参量变为必需参量。在上述实例中,这相当于:如果要指定 minval
的值,必须指定 maxval
的值。
被忽略位置参量
MATLAB 允许您通过传递波浪号字符 (~
) 代替参量来忽略参量。您可以通过在参量代码块中添加波浪号字符 (~
) 来定义一个忽略未使用位置参量的函数,添加字符的位置对应于该参量在函数签名中的位置。为函数签名中的每个被忽略参量添加一个波浪号字符 (~
)。
被忽略参量不能有默认值,也不能指定类、大小或验证函数。
波浪号字符 (~
) 被视为可选参量,除非它后跟必需位置参量。例如,在此函数中,波浪号字符 (~
) 代表一个可选参量。
function c = f(~) arguments ~ end % Function code end
您可以不带参量调用此函数。
c = f
您也可以带一个参量调用此函数。
c = f(2)
在以下函数中,波浪号字符 (~
) 代表一个必需参量。
function c = f(~,x) arguments ~ x end % Function code ... end
对此函数的调用必须包含两个参量。
c = f(2,3)
有关调用具有被忽略输入的函数的详细信息,请参阅忽略函数定义中的输入。