可以使用与特殊语法类似的语法从函数返回可变数量的输出参数varargin参数名称。要让函数返回可变数量的输出参数,请使用特殊的输出参数名称varargout使用。与一样varargin,varargoutisa元胞数组,它将包含指定的输出参数。
例如,下面的函数将第一个输出参数设置为1,将第二个设置为2,依此类推。
function varargout = one_to_n ()
for i = 1:nargout
varargout{i} = i;
endfor
endfunction
当调用此函数时,返回如下值
[a, b, c] = one_to_n ()
⇒ a = 1
⇒ b = 2
⇒ c = 3
如果varargin(varargout)没有作为输入(输出)参数列表的最后一个元素出现,那么它就不是特殊的,处理方式与其他任何参数名称相同。
[r1,r2, …,rn] = deal (a)¶
[r1,r2, …,rn] = deal (a1,a2, …,an)¶
将输入参数复制到相应的输出参数中。
如果只提供一个输入参数,其值将复制到每个输出。
例如
[a, b, c] = deal (x, y, z);
相当于
a = x; b = y; c = z;
和
[a, b, c] = deal (x);
相当于
a = b = c = x;
编程说明:deal通常与从元胞数组或结构体派生的逗号分隔列表一起使用。这是不必要的,因为解释器可以在没有函数调用开销的情况下执行相同的操作。例如
c = {[1 2], "Three", 4};
[x, y, z] = c{:}
⇒
x =
1 2
y = Three
z = 4
详见: cell2struct,struct2cell,repmat.
版权所有 © 2024-2025 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2