• 输入参数varargin


      一种特别的输入参数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
    ', argA) 
    
    end
    
     %传入参数有argB时输出argB 
    
    if stdargin == 2 
    
    fprintf(' %d
    ', argB)
    
     end
    
     %size(varargin,2)返回可选参数个数,此处输出可选参数列表 
    
    for k= 1 : size(varargin,2) 
    
    fprintf(' %d
    ', 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数组的方式来获取可变参数的信息。

  • 相关阅读:
    问世即屠榜的bert
    写给日后面试的小朋友们~
    SQL笔记续补
    《姜子牙》视频笔记
    知识图谱之小米的落地与应用探索
    Pyspark ml
    一个小时学会用 Go 编写命令行工具
    C#设计模式-组合模式(Composite Pattern)
    C#设计模式-桥接模式(Bridge Pattern)
    C#设计模式-装饰器模式(Decorator Pattern)
  • 原文地址:https://www.cnblogs.com/lihuidashen/p/3431277.html
Copyright © 2020-2023  润新知