您的位置:首页 > 编程语言 > MATLAB

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

2018-03-13 11:08 477 查看
写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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  matlab 函数
相关文章推荐