主要内容

varargout

变长输出参数列表

语法

描述

例子

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

当函数执行时,varargout是1 × -吗N单元格数组,其中N在显式声明的输出之后请求的输出数。在函数内部,varargout是未初始化的变量,且未预分配。

例子

全部展开

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

类型returnVariableNumOutputs
function [s,varargout] = returnVariableNumOutputs(x) nout = max(varargout,1) - 1;S = size(x);对于k = 1:nout varargout{k} = s(k);结束结束

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

调用带有三维数组的函数并请求三个输出。

A = rand(4,5,2);[s,rows,cols] = returnVariableNumOutputs(A)
s =1×34 5 2
行数= 4
Cols = 5

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

A = 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
function varargout = variableNumInputAndOutput(varargin) disp(['提供的输入数量:' num2str(长度(varargin))]) disp(['请求的输出数量:' num2str(nargout)]) for k = 1:nargout varargout{k} = k;结束结束

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

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

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

variableNumInputAndOutput
Number of provided input: 0 Number of requested output: 0

在工作文件夹中的文件中,为绘制红线的plot函数创建包装器。的redplot函数接受一个变长输入参数列表并返回一个变长输出参数列表。它将行颜色设置为红色,并将其他输入值转发给情节函数。这个函数包装器允许您传递redplot相同的输入情节并且没有指定线的颜色是红色。

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

使用redplot创建一个线形图。

X = 0:pi/100:2*pi;Y = sinx;redplot (x, y)

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

调用redplot,并指定要转发到情节函数。

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

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

扩展功能

版本历史

R2006a之前介绍