11.5可变长度返回列表

可以使用与特殊语法类似的语法从函数返回可变数量的输出参数变精蛋白参数名称。要让函数返回可变数量的输出参数,请使用特殊的输出参数名称varargout使用。与一样变精蛋白,varargoutisa元胞数组,它将包含指定的输出参数。

例如,下面的函数将第一个输出参数设置为1,将第二个设置为2,依此类推。

函数varargout=one_to_n(),对于i=1:nargot varargout{i}=i;endforend函数

当调用此函数时,返回如下值

[a,b,c]=one_to_n()⇒ a=1⇒ b=2⇒ c=3

如果变精蛋白(varargout)没有作为输入(输出)参数列表的最后一个元素出现,那么它就不是特殊的,处理方式与其他任何参数名称相同。

 
:[r1,r2, …,rn] = 处理 (a)
:[r1,r2, …,rn] = 处理 (a1,a2, …,a)

将输入参数复制到相应的输出参数中。

如果只提供一个输入参数,其值将复制到每个输出。

例如

[a,b,c]=deal(x,y,z);

相当于

a=x;b=y;c=z;

[a,b,c]=deal(x);

相当于

a=b=c=x;

编程说明:处理通常与从元胞数组或结构体派生的逗号分隔列表一起使用。这是不必要的,因为解释器可以在没有函数调用开销的情况下执行相同的操作。例如

c={[12],“三”,4};[x,y,z]=c{:}⇒   x=1 2 y=三z=4

详见: cell2struct,struct2cell,repmat.


版权所有 © 2024 Octave中文网

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