输入参数varargin

简介:   一种特别的输入参数varargin 可以在自定义函数中得到,这种函数支持输入参数的变量的个数。这个参数显在输入参数列表的最后一项,它返回一个单元阵列,所以一个输入实参可以包括任意数目的实参。每一个实参都变成了由varagin 返回的单元阵列元素。

  一种特别的输入参数varargin 可以在自定义函数中得到,这种函数支持输入参数的变量的个数。这个参数显在输入参数列表的最后一项,它返回一个单元阵列,所以一个输入实参可以包括任意数目的实参。每一个实参都变成了由varagin 返回的单元阵列元素。如果它被应用,varagin 必须是函数中的最后一个输入参数。

  

varargin

【功能描述】返回函数输入参数列表长度

【函数描述】function y=bar(varargin):得到函数输入参数列表长度,varargin函数仅用于函数m文件内。

varargin参数位于函数输入参数列表的末尾,varargin必须小写。

【函数实例】新建一个名为lxyhds.m的函数,函数代码如下:

function lxyhds(argA, argB, varargin) %lxyhds为自己起的任意一个函数名字 

optargin=size(varargin,2);%获取可选参数数目 nargin为系统变量,返回函数参数数目,此处返回除了可选变量之外的变 量数目

stdargin=nargin - optargin; %传入参数至少有argA时才输出argA 

if stdargin >= 1 fprintf(' %d\n', argA) 

end

 %传入参数有argB时输出argB 

if stdargin == 2 

fprintf(' %d\n', argB)

 end

 %size(varargin,2)返回可选参数个数,此处输出可选参数列表 

for k= 1 : size(varargin,2) 

fprintf(' %d\n', varargin{k}) 

end 

end

例如,写了一个函数:function test(varargin)

      那么在这个函数里,varargin就是一个cell数组,它包含了用户输入的参数。下面是一个例子:

function test(varargin)
disp(['nargin is ' num2str(nargin)]);
for v=1:numel(varargin)
      disp(['varargin{' num2str(v) '} class is ' class(varargin{v})]);
end

    完全就是使用cell数组的方法来处理用户输入的个数不定的参数,如果我们这样调用这个函数:

>> test()

      会得到结果:

nargin is 0

      表示用户输入参数个数为0个,就是没有输入参数。

      如果这样调用:

>> test(1,'a',uint8(32),'123456');

      会得到结果:

nargin is 4
varargin{1} class is double
varargin{2} class is char
varargin{3} class is uint8
varargin{4} class is char

      表示用户输入了4个参数,第一个是double类型,第二个是char类型,第三个是uint8类型,第四个也是char类型。

      也就是说,只要把函数的参数列表的最后一个参数写成varargin,就可以在函数内部以访问cell数组的方式来获取可变参数的信息。

相关文章
|
6月前
|
存储 C++
C++系列五:输入/输出
C++系列五:输入/输出
|
6月前
|
数据处理 C++ UED
C++程序中的输入与输出
C++程序中的输入与输出
61 2
|
6月前
|
存储 C语言
c输入&输出
c输入&输出
32 1
|
6月前
|
C语言
输入&输出
【2月更文挑战第13天】输入&输出。
23 1
|
6月前
|
编译器 C++
【c++】C++输入&输出
【c++】C++输入&输出
【c++】C++输入&输出
|
6月前
|
C++
58C++的输入和输出
58C++的输入和输出
39 0
|
编译器 C语言
C 输入 & 输出
C 输入 & 输出。
93 1