11.7忽略参数

在形式参数列表中,可以使用伪占位符~而不是一个名字。这表示应忽略相应的参数值,而不是将其存储到任何变量中。

函数val=pick2d(~,arg2)val=arg2;结束函数

的值函数输入变量数不受使用此语句的影响。

使用相同的语法也可以忽略返回参数。例如,排序函数返回排序后的值和原始输入的索引向量,这将导致排序后的输出。忽略第二个输出很简单——不要指定多个输出。但是忽略第一个输出,只计算第二个输出,需要使用~占位符。

x=[2,3,1];[s,i]=排序(x)⇒s=1 2 3i=3 1 2[~,i]=排序(x)⇒i=3 1 2

使用时~占位符,逗号——而不是空白——必须用于分隔输出参数。否则,解释器将查看~作为逻辑而非运算符。

[~i]=sort(x)解析错误:赋值左侧无效

函数可以利用被忽略的输出来减少执行的计算次数。要执行此操作,请使用isargout函数来查询是否需要输出参数。例如

function[out1,out2]=long_function(x,y,z)if(isargout(1))##长计算。。。out1=结果;endif。。。结束函数
 
: tf = isargout (k)

在函数中,返回一个逻辑值,指示参数是否k将在输出时赋值给一个变量。

如果结果为false,则在函数调用期间通过使用波浪号(~)特殊输出参数忽略了该参数。函数扫描使用isargout以避免对不需要的输出执行不必要的计算。

如果k超出范围1:max(麻醉),函数返回alse。k也可以是一个数组,在这种情况下,函数按个元素地工作,并返回一个逻辑数组。在顶层,isargout返回一个错误。

详见: nargout, varargout, nthargout.


版权所有 © 2024 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号