5.3选择性参数

第五章自定义函数第139页函数inputname用来显示警告或错误信息中的参数名非常有用。例5.3选择性参数的应用通过创建函数把直角坐标值(x,y)转化相应的极坐标值,我们向大家说选择性参数的应用。这个函数支持两个输入参数,x和y。但是,如果支持只有一个参数的情况,那么函数就假设y值为0,并使用它进行运算。函数在一般情况下输出量为模与相角(单位为度)。但只有一个输出参数时,它只返回模。函数如下所示。


function [mag, angle] = polar_value(x, y)

% POLAR_VALUE Converts(x, y) to (r, theta)

% Function POLAR_VALUE converts an input(x,y)

% value into (r, theta), with theta in degrees.

% It illustrates the use of optional arguments.

% Define variables:

% angle --Angle in degrees

% msg --Error message

% mag --Magnitude

% x --Input x value

% y --Input y value(optional)

% Record Of revisions:

% Date Programmer Description of change

% =========== ===

% 12/16/98 S.J.Chapman Original code

% Check for a legal number of input arguments

msg = nargchk(1,2,nargin); error(msg);

% If the y argument is missing, set it to 0.

if nargin < 2

    y = 0;

end

% Check for (0,0) input argument, and print out

% a warning message.

if x == 0 & y == 0

    msg = 'Both x and y are zero: angle is meaningless!';

    warning(msg);

end

% Now calculate the magnitude

mag = sqrt(x .^2 + y .^2);

% If the second output argument is present,calculate

% angle in degrees

if nargout == 2

    angle = atan2(y,x) * 180/pi;

end

我们通过在命令窗口反复调用这个函数来检测它。我们用过多或过少的参数来调用这个函数。


>> [mag angle]=polar_value

??? Error using ==> polar_value

Not enough input arguments.

>> [mag angle]=polar_value(1,-1,1)

??? Error using ==> polar_value

Too many input arguments.

在两种情况下均产生了相应的错误信息。我们将用一个参数或两个参数调用这个函数。


>> [mag angle]=polar_value(1)

若您对函数参数的更多应用感兴趣,为什么不看看这篇关于函数参数传递的文章呢?或者,这篇关于Python函数参数的详细介绍也会给您带来启发!还有一个有趣的资源是关于JavaScript函数参数的讲解,绝对值得一读!

让我们进一步探索这些主题,看看还能发现些什么吧!