nargin与varnargin
在一个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相关推荐
- MATLAB中nargin 的用法
nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能.通常可以用他来设定一些默认值,如下面的函数. 例子,函数test1的功能是输出a和b的和.如果只输入一个变量,则认为另 ...
- matlab 中关于nargin 以及 varargin 函数的使用
最近自己在学matlab function过程当中对于 varargin函数的使用有了疑惑 于是结合自己所看的教学以及搜集到的资料对于这两个函数的理解 nargin: number of functi ...
- nargin与varargin的用法
nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能.通常可以用它来设定一些默认值.如下例所示: 函数文件 examp.m function fout=examp(a,b, ...
- matlab里面nargin,Matlab中的nargin命令
Matlab中输入 help nargin nargin Number of function input arguments. Inside the body of a user-defined ...
- nargin在matlab中是什么意思
nargin是Matlab中的一个内置函数,用于确定当前函数被调用时传递了多少个输入参数.具体来说,nargin返回当前函数被调用时实际传入的输入参数的数量.例如,如果当前函数被调用时传入了3个输入参 ...
- MATLAB中nargin函数的用法nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能。通常可以用它来设定一些默认值。如下例所示: 函数文件 examp.m
nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能.通常可以用它来设定一些默认值.如下例所示: 函数文件 examp.m function fout=examp(a,b, ...
- Matlab nargin
nargin 函数输入参数数目 语法 nargin nargin(fun) 说明 1.nargin 针对当前正在执行的函数,返回函数调用中给定函数输入参数的数目.该语法仅可在函数体内使用. 示例 在名 ...
- MATLAB 中nargin函数
1.nargin 函数输入参数数 编辑器中: function d=dist3D(x1,x2,y1,y2,z1,z2) %计算两点间距离 %y返回值 %入口参数(x1,y1,z1)(x2,y2,z2) ...
- nargin函数的用法
高质量学习资源免费获取,专注但不限于[Linux][C/C++/Qt][FPGA][数据结构与算法], 根据多年技术经验纯[原创],纯[干货],分享[技术心得],力求[授人以鱼,更授人以渔]. nar ...
最新文章
- CentOS7下安装nvm
- 1024 Palindromic Number
- 继承ViewGroup研究(汇总) 一、二、三
- 线索二叉树代码实现 - 数据结构和算法49
- Office365 用户同步排错思路
- 神奇的HyperLogLog算法
- discuz!5.5.0安装方法及常见问题解决
- bzoj 4319 cerc2008 Suffix reconstruction——贪心构造
- “已使用指定的进程(“Web Management Service”)连接到远程计算机,但未能验证服务器的证书”的解决方案
- 线程与并发基础-青铜
- Windows7系统下编译安装X264
- Oracle数据库中scott用户不存在的解决方法
- Splay模板 1.0
- Win10操作系统下,如何打开DOS窗口(图文教程)
- 医用自动配药柜的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- 360浏览器插件360抢票王火车票刷票技巧
- 计算机管理员被停用,命令提示符已被系统管理员停用,详细教您命令提示符已被系统管理员停用怎么办...
- CUE 文件格式说明
- 大家好,我是浪啦啦啦啦啦!
- Civil3D创建装配集合