可以使用与特殊语法类似的语法从函数返回可变数量的输出参数varargin
参数名称。要让函数返回可变数量的输出参数,请使用特殊的输出参数名称varargout
使用。与一样varargin
,varargout
isa元胞数组,它将包含指定的输出参数。
例如,下面的函数将第一个输出参数设置为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