函数的参数传递:
函数的一个重要特点就是参数传递,这也是它与不具备参数传递功能的M命令文件的主要区别之一。
在参数传递时,要保证“虚实结合”时对应参数的一一对应。
但实际应用中,有时难免会出现传递的参数个数不确定,导致对应的处理也有所区别的现象。
nargin与nargout函数
和其他程序设计语言相比,MATLAB在函数调用上有一个与众不同之处:函数所传递参数的数目是可调的,即传递的参数个数可以任意。在MATLAB中提供了两个函数:nargin和nargout,借助它们,能够准确地知道该函数文件被调用时的输人输出数目,从而确定函数如何进行处理。
区别:
nargin用于控制被调用时的输人参数的个数,nargout用于检查函数被调用时输出参数的个数。
varargin与nargin的区别
在matlab中, varargin提供了一种函数可变参数列表机制,使用varargin的函数可以调用该函数时根据需要来改变输入参数的个数。
在matlab中定义一个函数时,在函数体内部,argin用于控制被调用时的输人参数的个数
varargout与nargout区别
在matlab中定义m函数时通过varargout我们可以得到可变的数个返回值。在matlab命令窗口中输入doc varargout或help varargout可以获得相关帮助信息。函数申明时的输出参数。
在matlab中定义一个函数时,在函数体内部,nargout用于检查函数被调用时输出参数的个数
实例:
function c = testarg(a,b)
%testarg函数用于验证可调参数nargin的用法
%当输入参数为一个时,求其倍数;如果有两个输入参数,则求其和
if nargin == 1 %如果输入参数为一个时,求其倍数
c = a + a;
else nargin == 2 %如果有两个输入参数,则求其和
c = a + b;
end
运行结果:
>>testarg(4)
ans =
8
>>testarg(3,7)
ans =
10
实例2:
function [x0, y0] = myplot(x, y, npts, angle, subdiv)
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