Matlab中varargin简介,varargin函数的使用
来源:互联网 发布:软件风险矩阵 编辑:程序博客网 时间:2024/05/05 14:06
elseif strcmp(varargin{1}, 'userManage') %用户管理窗口
%{
varargin:表示输入参数列表,
slidingDis = varargin{argI+1}:表示将第argI+1个输入参数赋值给
slidingDis
这是可变参数输入
varargin是一个元胞数组,调用函数时,输入参数可以不同
其大小可以随着输入参数而变大或变小。如你可以这样调用 pb_call(a)
也可以这样 pb_call(a,b), pb_call(a,b,c)
此时,varargin{1}=a; varargin{2}=b ; varargin{3}=c;
%{
varargin:表示输入参数列表,
slidingDis = varargin{argI+1}:表示将第argI+1个输入参数赋值给
slidingDis
这是可变参数输入
varargin是一个元胞数组,调用函数时,输入参数可以不同
其大小可以随着输入参数而变大或变小。如你可以这样调用 pb_call(a)
也可以这样 pb_call(a,b), pb_call(a,b,c)
此时,varargin{1}=a; varargin{2}=b ; varargin{3}=c;
%}
varargin调用者调用该函数时根据需要来改变输入参数的个数。以元胞数组保存varargout调用者调用该函数时根据需要来改变输出参数的个数。function varlist(varargin) fprintf('Number of arguments: %d\n',nargin);%输出输入参数的个数 celldisp(varargin)%输出输入的参数 >> varlist(121,'sds',34)Number of arguments: 3 varargin{1} = 121varargin{2} = sdsvarargin{3} = 34
matlab中varargin简介
varargin可以看做“Variable length input argument list”的缩写。在matlab中, varargin提供了一种函数可变参数列表机制。 就是说, 使用了“可变参数列表机制”的函数允许调用者调用该函数时根据需要来改变输入参数的个数。
matlab中很多内建函数和工具箱函数都使用了这种机制。 比如图像处理工具箱中的imshow函数。 该函数允许我们根据图像数据特点来调用:
比如, 显示一张真彩色位图, 我们可以简单的使用:
imshow(RGB), 其中RGB是通过imread函数读取图像获得的图像数据。这里我们只给了一个参数。
但是在显示索引图像时, 因为索引图像使用了调色板,因此为了正确显示图像, 除了图像数据外, 我们还要额外指定显示图像所使用的调色板(一般也由imread函数获得),这样就出现了以下的调用格式:
imshow(X, map)
那么, 这种机制是怎么实现的呢? 借助于varargin。
相关:varargout、nargin
下面我们来看一个简单的例子,(本例子参考了matlab中varargin文档)
function retvar = vartest(varargin)
optargin = size(varargin, 2); % number of inputs.
ndims(varargin)
varargin
stdargin = nargin - optargin; % 'nargin' in matlab means number of input arguments.
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
我们看到, 这里varargin是一个1*3的二维矩阵, 这个矩阵即我们调用这个函数时传入的参数列表。
通过size(varargin, 2)获得的varargin第二维的尺寸(即varargin的列数)就是我们传入的参数个数。
stdargin = nargin - optargin;这一句是获取可变参数列表从第几个参数开始的。 其中, nargin也是matlab中的, 不能拼错了, nargin的
值即传入的所有参数个数。
也许你会问, 咦? 这不就是size(varargin, 2)吗?
对于本例,的确这样子。
但是有的函数, 参数列表是这样的:
function vartest_2(arg1, argb, varargin)
optargin = size(varargin, 2); % number of inputs.
stdargin = nargin - optargin; % 'nargin' in matlab means number of input arguments.
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
你会看到, 由于vartest_2的第一二个参数不是可变参数列表的一部分, 可变参数列表从第三个参数开始。因此
nargin等于3, 而size(varargin, 2) 等于1
0 0
- Matlab中varargin简介,varargin函数的使用
- matlab中varargin简介
- Matlab中varargin函数
- Matlab中使用varargin来实现参数可变的函数
- Matlab中使用varargin来实现参数可变的函数
- Matlab中使用varargin来实现参数可变的函数
- Matlab中使用varargin来实现参数可变的函数
- Matlab中使用varargin来实现参数可变的函数
- MATLAB中的varargin 函数
- matlab中varargin
- 【转】Matlab中使用varargin来实现参数可变的函数
- matlab中nargin和varargin的用法
- varargin
- MATLAB中的varargin,varargout在函数中运用
- MATLAB中的varargin,varargout在函数中运用
- MATLAB中的varargin,varargout在函数中运用
- matlab中varargout与nargout,varargin与nargin的区别
- Matlab中nargin,nargout,varargout以及varargin的用法 -
- 构建fabMap过程中可能遇到的错误
- MyEclipse中jQuery加载时遇到的相关问题
- 【51NOD 1383】整数分解为2的幂
- PAT1005-Spell It Right
- Python链接Mysql数据库
- Matlab中varargin简介,varargin函数的使用
- Spring-Rabbit消费多个mq中相同的队列
- 可以随时拿取spring容器中Bean的工具类
- 2. Add Two Numbers
- k近邻算法的实现:kd树
- 第四部分 函数式编程应用
- 直播转码
- 《linux内核完全剖析》笔记05-任务退出
- OSGi - 第03章 BundleContext.getService()详解之一