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 2c= a + b;
case 1c = a + a ;
otherwisec = 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\n',nargin);
celldisp(varargin)varlist( ones(3), 'some text', pi)
Number of arguments:3
varargin{1} = 1    1    11    1    11    1    1
varargin{2} =
some text
varargin{3} =
3.1416

第二个例子:

function varlist2(x, y, varargin)
fprintf('Total number of inputs = %d\n', nargin);
nVarargs = length(varargin);
fprintf('Inputs in varargin( %d ) :\n', nVarargs);
for k = 1 : nVarargs
fprintf('    %d ', varargin{k} )
endvarlist2( 10, 20, 30, 40, 50)
Total number of inputs = 5
Inputs in varargin(3):
30
40
50

转载于:https://www.cnblogs.com/hyb221512/p/9347203.html

nargin与varargin的用法相关推荐

  1. Matlab中nargin,nargout,varargout以及varargin的用法 -

    在写<用Matlab演示Parzen窗法>的时候,我还不知道怎样在m中设计可变参数函数. 后来阅读一些m自带函数源码时发现了它的秘密,只要将最后一个参数设置为varargin,就可以实现. ...

  2. matlab:nargin,varargin,varargout

    nargin 简介 nargin是用来判断函数中输入变量的个数,这样就可以针对不同的情况执行不同的功能.通常可以用他来设定一些默认值. 使用场景 利用nargin判断输入参数个数 varargin 简 ...

  3. matlab 中关于nargin 以及 varargin 函数的使用

    最近自己在学matlab function过程当中对于 varargin函数的使用有了疑惑 于是结合自己所看的教学以及搜集到的资料对于这两个函数的理解 nargin: number of functi ...

  4. varargin、varargout、nargin和nargout的使用方法

    varargin.varargout.nargin和nargout的使用方法 varargin.varargout.nargin和nargout的使用方法 技巧实现 函数输入和输出参数个数确定的情况 ...

  5. nargin 和 nargout

    nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能.通常可以用他来设定一些默认值,如下面的函数.例子,函数test1的功能是输出a和b的和.如果只输入一个变量,则认为另一 ...

  6. MATLAB寻址访问按什么优先,matlab笔记

    在比赛的前几天查看一下可视化画图的方式 知识点目录 矩阵元素寻址 矩阵的逻辑运算符很重要 函数文件的写法 函数 函数的可变数量 跨空间变量传递 画图 数据分析 数据插值 三次样条插值法 #符号识别 p ...

  7. matlab私有函数,MATLAB 嵌套函数,子函数,私有函数,重载函数

    MATLAB函数嵌套 MATLAB中M文件有两种类型,脚本M文件和函数M文件.脚本M文件是将可执行程序语句放入M文件中,就像在命令窗口那样,按其语句顺序及逻辑关系执行,可以理解为一般的顺序执行程序语句 ...

  8. python与matlab混合编程_python 与 matlab 混编

    Matlab的官方文档中介绍了 Matlab 与其余编程语言之间的引擎接口,其中包括对于 Python 开放的引擎 API,可参考官方教程,其中包括引擎安装,基本使用,以及Python与Matlab之 ...

  9. matlab基本使用指南

    目录 一.MATLAB介绍与使用 1.1 matlab功能 1.2 文件 1.3 全局变量 1.4 程序调试 二.数据操作 2.1 变量和语句 2.2 数据类型 2.2.1 数值型数据 2.2.2 字 ...

最新文章

  1. python 实现可以一直输入内容直到某个特定的值退出循环的操作
  2. 【bzoj 1833】【codevs 1359】 [ZJOI2010]count 数字计数(数位dp)
  3. SQL获取当月天数的几种方法
  4. Android入门第八篇之GridView(九宫图)
  5. 子进程 post-installation script 返回了错误号 解决方法
  6. I see IC的破冰之旅
  7. Angular 内容投影 content projection 关于选择器问题的单步调试
  8. STM32学了很久,我还是不会做项目。
  9. python中形参*args和**kwargs简述
  10. RabbitMQ学习笔记-RabbitMQ深入理解
  11. FPGA RTL级设计原则
  12. java数组的初始化方式
  13. 浅谈前后端分离与实践 之 nodejs 中间层服务
  14. SetTimer函数的用法
  15. android 魅族 webview,魅族 Flyme 系统出现大面积应用闪退问题,提供临时解决方法...
  16. 对接企业微信3:网页授权登录
  17. 【tensorboard】解决ValueError: Duplicate plugins for name projector
  18. 【web框架】【zheng学习笔记(二)】【外网正式环境下部署(CentOS7.4)】
  19. Aspnet Mvc 前后端分离项目手记(二)关于token认证
  20. 论文解读:医学影像中的注意力机制

热门文章

  1. “相信美好,即将发生”——天泽智云
  2. Python_001_旅游评论情感倾向性分析_000_分析(基于深度学习的微博评论情感倾向性分析_胡西祥)论文
  3. Proe转Solidworks
  4. 桥接模式: Bridge
  5. Windows 11新版本安装时需要联网及登录微软账号
  6. Maven3.6.3 下载与配置
  7. CDA数据分析师协会等级认证证书
  8. MySQL中date、datetime、timestamp、time、year的区别
  9. 某大神网站发现2048一枚
  10. WPF 元素裁剪 Clip 属性