主要内容

varargout

可变长度输出参数列表

语法

描述

例子

varargout是函数定义语句中的输出变量,它使函数能够返回任意数量的输出参数。指定varargout使用小写字符,并将其作为显式声明的输出之后的最后一个输出参数。

当函数执行时,varargout是1 -N单元阵列,N显式声明输出后请求的输出数。在函数内部,varargout是一个未初始化的变量,并且没有预先分配。

例子

全部展开

在命名为returnVariableNumOutputs.m它返回一个输出大小向量年代以及数量不定的额外输出。

类型returnVariableNumOutputs
函数[s,varargout] = returnVariableNumOutputs(x) nout = max(nargout,1) - 1;s =大小(x);对于k = 1:nout varargout{k} = s(k);结束结束

输出年代包含输入数组的尺寸x.额外的输出对应于内部的各个维度年代

使用三维数组调用函数并请求三个输出。

一个=兰德(4、5、2);[s、行关口]= returnVariableNumOutputs (A)
s =1×34 5 2
行= 4
关口= 5

再次使用四维数组调用函数并请求四个输出。这一次,函数不返回单独的第四个维度。

一个= 0 (1,4,5,2);[s dim1 dim2, dim3] = returnVariableNumOutputs (A)
s =1×41 4 5 2
dim1 = 1
dim2 = 4
dim3 = 5

再次调用该函数一个并请求一个输出。现在函数返回的维数一个而不是varargout

s = returnVariableNumOutputs (A)
s =1×41 4 5 2

在命名为variableNumInputAndOutput.m它接受可变数量的输入和输出。

类型variableNumInputAndOutput
函数varargout = variableNumInputAndOutput(varargin) disp(['提供的输入数量:' num2str(长度(varargin))]) disp(['请求的输出数量:' num2str(nargout)]) for k = 1:nargout varargout{k} = k;结束结束

调用具有两个输入和三个输出的函数。

g (d, p) = variableNumInputAndOutput (6“关系”
提供的输入数量:2请求的输出数量:3
d = 1
g = 2
p = 3

在没有输入或输出的情况下再次调用函数。

variableNumInputAndOutput
提供的输入数量:0请求的输出数量:0

在工作文件夹中的文件中,为绘制红线的plot函数创建一个包装器。的redplot函数接受一个变长输入参数列表并返回一个变长输出参数列表。它将行颜色设置为红色,并将其他输入值转发到情节函数。此函数包装器使您能够传递redplot同样的输入情节并且不指定线条颜色为红色。

类型redplot.m
function varargout = redplot(varargout) [varargout{1:nargout}] = plot(varargout{:},'Color',[1,0,0]);结束

使用redplot创建一个线状图。

x = 0:π/ 100:2 *π;y = sin (x);redplot (x, y)

图中包含一个axes对象。axis对象包含一个类型为line的对象。

调用redplot并指定要转发到的输入和输出参数情节函数。

h = redplot (x, y,“标记”“o”“MarkerEdgeColor”“绿色”);

图中包含一个axes对象。axis对象包含一个类型为line的对象。

扩展功能

版本历史

之前介绍过的R2006a

Baidu
map