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)
调用redplot
并指定要转发到的输入和输出参数情节
函数。
h = redplot (x, y,“标记”,“o”,“MarkerEdgeColor”,“绿色”);
扩展功能
C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
对于代码生成,使用
varargout
在入口点(顶级)函数中,必须使用codegen -nargout
语法。该指数为
varargout
必须是编译时常量。
版本历史
之前介绍过的R2006a
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。