• nargin与varargin的用法


     nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能。通常可以用它来设定一些默认值。如下例所示:

        函数文件 examp.m

        function fout=examp(a,b,c)

        if nargin==1

           fout=a;

        elseif nargin==2

           fout=a+b;

        elseif nargin==3

           fout=(a*b*c)/2;

        end

    另外一例:

        function [x0, y0] = myplot(x, y, npts, angle, subdiv)
    % MYPLOT  Plot a function.
    % MYPLOT(x, y, npts, angle, subdiv)
    %     The first two input arguments are
    %     required; the other three have default values ...
    if nargin < 5, subdiv = 20; end
    if nargin < 4, angle = 10; end
    if nargin < 3, npts = 25; end
     ...
    if nargout == 0
         plot(x, y)
    else
         x0 = x;
         y0 = y;
    end

    注:%x,y是两个变量,npt,angle,subdiv这三个参数具有默认值,不需要输入。
    if nargin < 5, subdiv = 20; end如果输入变量的个数小于5个,那么给subdiv赋默认值。

    if nargin < 4, angle = 10; end如果输入变量的个数小于4个,那么给angle赋默认值。

    ......
    详细用法 在matlab窗口中输入 help nargin

    nargin的用法:

    nargin:number of function input arguments,指的是一个函数的输入变量的个数。

    用法:nargin或着nargin(fx), 其中fx指的是一个函数名或着函数句柄。

    当一个函数的参数中含有varargin变量时,这时候返回值为负。

    下面举例说明:

    用于nargin:

    复制代码
    function c = addme(a, b)
    switch nargin
    case 2
     c= a + b;
    case 1
     c = a + a ;
    otherwise
      c = 0;
    end
    复制代码

    返回的结果为 a + b。

    用到nargin(fx):

    fx = 'addme';
    nargin(fx)
    ans = 
        2

    当含有 varargin参数时,

    function mynewplot(x, y, varargin)
     
    fx = 'mynewplot';
    nargin(fx)
    ans = 
    -3

    varargin的用法:

    varargin:Variable-length input arguments list. 即指的是变输入参数列表;

    varargin 就是一个输入 变量,它可以是任意个不定个数的输入参数。要求:第一,指明它用小写的字母表示;第二,在函数的参数列表中,varargin放在最后面。    当函数执行时,varargin就是一个1*n的cell数组。下面我们举例说明:

    第一个例子:

    复制代码
    function varlist( vargarin)
    fprintf(' Number of arguments: %d
    ',nargin);
    celldisp(varargin)
    
    varlist( ones(3), 'some text', pi)
    Number of arguments:3
    varargin{1} = 
        1    1    1
        1    1    1
        1    1    1
    varargin{2} = 
    some text
    varargin{3} = 
    3.1416
    复制代码

    第二个例子:

    复制代码
    function varlist2(x, y, varargin)
    fprintf('Total number of inputs = %d
    ', nargin);
    nVarargs = length(varargin);
    fprintf('Inputs in varargin( %d ) :
    ', nVarargs);
    for k = 1 : nVarargs
    fprintf('    %d ', varargin{k} )
    end
    
    
    
    varlist2( 10, 20, 30, 40, 50)
    Total number of inputs = 5
    Inputs in varargin(3):
    30
    40
    50
    看后请点赞
  • 相关阅读:
    python zip()与zip(*ziped)以及list(zip(a,b))
    通信原理(第七版)-樊昌信-第一章-绪论-重要知识点
    通信原理-自相关与互相关函数的关系
    通信原理(第七版)-樊昌信-第二章-确知信号-重要知识点
    C#Linq的10个练习
    C#从委托、lambda表达式到linq总结
    C#的隐式类型、匿名类型、自动属性、初始化器
    MVC开发之Razor的使用
    Markdown常用语法
    MVC开发之注入容器Ninject的使用
  • 原文地址:https://www.cnblogs.com/hyb221512/p/9347203.html
Copyright © 2020-2023  润新知