在一个m文件中,调用nargin能够返回一个函数的参数数目,例如:

function g=mytest(x,y,z);

n = nargin;

那么n的个数为3。

MATLAB中提供一个函数nargchk来检查参数个数是否符合要求。在说明这个函数的作用之前先简单介绍另一个函数的作用:

error(string);

string是一个字符串,当string不为空时,调用该error的函数终止,输出string的内容;而当string为空时,error不做任何反应。

msg = nargchk(low,high,number);当number小于low时,那么nargchk返回一个“Not enough input parameters”;当number大于high时,那么nargchk返回“Too many input parameters”;当number符合要求时,返回空的字符串。

function g = mytest2(x,y,z)

error(nargchk(2,3,nargin));

那么理论上输入mytest2(1),会输出“Not enough input parameters”;输入mytest2(1,2,3,4),会输出“Too many input parameters”;系统内部就是按照这个原理进行系数个数检测的。

另外需要说明的是,高级版本的MATLAB已经使用narginchk代替nargchk。

我们经常会遇到需要编写一个函数,但是其参数数量不能确定,需要根据调用时的实际情况来确定;或者参数的类型是差别很大的,很难统一输出处理;此时在定义的时候使用varnargin便是一个不错的选择。下面通过例子来说明:

function retvar = vartest(varargin)
optargin = size(varargin, 2); % 输入的可变参数的数量,注意和nargin的区别,可以结合下一例子比较
ndims(varargin)% varargin的维度,向量是二维的;a[x][y][z]这个数组时3维的
varargin% varargin得内容
stdargin = nargin - optargin; % nargin是实际参数的总数量
fprintf('Number of inputs: %d\n', nargin);
fprintf('Inputs from individual arguments: %d\n', stdargin)
for k = 1:size(varargin, 2) 
fprintf('%d: %d\n', k, varargin{k});
end
end
>> vartest(1, 2, 3)
ans = 2
varargin = 
[1] [2] [3]
Number of inputs: 3
Inputs from individual arguments: 0
1: 1
2: 2
3: 3
例子2
function vartest_2(arg1, argb, varargin)%注意和上一个函数的参数做比较,这里的可变参数是从第三个开始的,说明调用函数时最少传递2个参数
optargin = size(varargin, 2); 
stdargin = nargin - optargin; 
fprintf('Number of inputs: %d\n', nargin);
fprintf('Inputs from individual arguments: %d\n', stdargin)
for k = 1:size(varargin, 2) 
fprintf('%d: %d\n', k, varargin{k});
end
end
这次我们调用:
>> vartest_2(1, 2, 3)
Number of inputs: 3
Inputs from individual arguments: 2
1: 3

nargin与varnargin相关推荐

  1. MATLAB中nargin 的用法

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

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

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

  3. nargin与varargin的用法

    nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能.通常可以用它来设定一些默认值.如下例所示: 函数文件 examp.m function fout=examp(a,b, ...

  4. matlab里面nargin,Matlab中的nargin命令

    Matlab中输入  help nargin nargin Number of function input arguments. Inside the body of a user-defined ...

  5. nargin在matlab中是什么意思

    nargin是Matlab中的一个内置函数,用于确定当前函数被调用时传递了多少个输入参数.具体来说,nargin返回当前函数被调用时实际传入的输入参数的数量.例如,如果当前函数被调用时传入了3个输入参 ...

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

    nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能.通常可以用它来设定一些默认值.如下例所示: 函数文件 examp.m function fout=examp(a,b, ...

  7. Matlab nargin

    nargin 函数输入参数数目 语法 nargin nargin(fun) 说明 1.nargin 针对当前正在执行的函数,返回函数调用中给定函数输入参数的数目.该语法仅可在函数体内使用. 示例 在名 ...

  8. MATLAB 中nargin函数

    1.nargin 函数输入参数数 编辑器中: function d=dist3D(x1,x2,y1,y2,z1,z2) %计算两点间距离 %y返回值 %入口参数(x1,y1,z1)(x2,y2,z2) ...

  9. nargin函数的用法

    高质量学习资源免费获取,专注但不限于[Linux][C/C++/Qt][FPGA][数据结构与算法], 根据多年技术经验纯[原创],纯[干货],分享[技术心得],力求[授人以鱼,更授人以渔]. nar ...

最新文章

  1. CentOS7下安装nvm
  2. 1024 Palindromic Number
  3. 继承ViewGroup研究(汇总) 一、二、三
  4. 线索二叉树代码实现 - 数据结构和算法49
  5. Office365 用户同步排错思路
  6. 神奇的HyperLogLog算法
  7. discuz!5.5.0安装方法及常见问题解决
  8. bzoj 4319 cerc2008 Suffix reconstruction——贪心构造
  9. “已使用指定的进程(“Web Management Service”)连接到远程计算机,但未能验证服务器的证书”的解决方案
  10. 线程与并发基础-青铜
  11. Windows7系统下编译安装X264
  12. Oracle数据库中scott用户不存在的解决方法
  13. Splay模板 1.0
  14. Win10操作系统下,如何打开DOS窗口(图文教程)
  15. 医用自动配药柜的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  16. 360浏览器插件360抢票王火车票刷票技巧
  17. 计算机管理员被停用,命令提示符已被系统管理员停用,详细教您命令提示符已被系统管理员停用怎么办...
  18. CUE 文件格式说明
  19. 大家好,我是浪啦啦啦啦啦!
  20. Civil3D创建装配集合

热门文章

  1. 你不知道的互联网公司招聘黑话大全
  2. 自然语言处理(二十八):BERT介绍
  3. typedef 用法详解
  4. Pycharm常用快捷键【快查字典版】
  5. [补充内容]关于使用matlab进行方程组求解的线性代数相关知识补充——n维向量
  6. windows提权常用系统漏洞与对应的补丁编号
  7. 深度学习(Deep Learning)
  8. 【深度学习】综述 | 深度学习的最新进展
  9. Internet Download Manager浏览器插件安装方法
  10. Qt: 判断字符串是否为数字,是否为整数