初学Matlab:自定义函数中给定输入参数的默认值

写Matlab自定义函数 的时候,要用到一些有初始默认值的参数函数,调用者实可以选择输入或不输入。如果不输入,直接用设定的默认的值。比如高度 计算分辨率默认我设为1km,当然你也可以输入2km或0.1km。在MATLAB中可以通过下面至少两种方法实现可选参数的功能,即
    1。用varargin,这个实际可以接受任意个不定参数,用varargout还可以输出任意个不定参数,用nargin可以得到输入参数的可 数,nargout可以得到输出参数的个数。比如,现在函数输入波长、太阳高度角、高度、计算光学厚度,实际默认或可选参数为高度分辨率ds,地球半径R
function [tau varargout]  =  wzjmtGetTau(wavelength, sza, h, varargin)
    ds = 1;
    R = 6378;
    if nargin > 4         
        ds = varargin{2};
    end
    if nargin > 3
        ds = varargin{1};
    end
        …计算过程
    tau = t;
    if nargout > 1
        varargout{1}=exp(-tau);
    end
end
    2。完全用nargin的实现,更接近c++。主要是用此值来判断用户输入的参数值的个数,决定没有输入的用默认的值。比如,还是上例:
function [tau varargout]  =  wzjmtGetTau(wavelength, sza, h, ds, R)
    if nargin < 4 ds = 1; end
    if nargin < 5 R = 6378; end
        …计算过程
    tau = t;
    if nargout > 1
        varargout{1}=exp(-tau);
    end
end

猜你喜欢

转载自blog.csdn.net/dashumak/article/details/79537823