初学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
的时候,要用到一些有初始默认值的参数函数,调用者实可以选择输入或不输入。如果不输入,直接用设定的默认的值。比如高度
计算分辨率默认我设为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函数的输入参数传递方式探秘
- JS 自定义函数时,如何定义参数默认值
- Matlab中如何将(自定义)函数作为参数传递给另一个函数
- MATLAB函数的输入参数传递方式探秘
- MATLAB中nargin函数的用法nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能。通常可以用它来设定一些默认值。如下例所示: 函数文件 examp.m
- Ext为处理函数自定义输入参数的四种方法(转载)
- python 函数判断输入参数个数 类似 matlab nargin
- JS 自定义函数时,如何定义参数默认值
- matlab guide未定义与 'matlab.ui.control.UIControl' 类型的输入参数相对应的函数
- Matlab中如何将(自定义)函数作为参数传递给另一个函数
- 按如下函数原型用函数编程解决如下的日期转换问题(要求考虑闰年的问题): 输入某年某月某日,计算并输出它是这一年的第几天。 /* 函数功能: 对给定的某年某月某日,计算它是这一年的第几天 函数参数:
- matlab ode45 函数传自定义参数用法及定步长ode45结算函数
- Matlab中如何将(自定义)函数作为参数传递给另一个函数
- Matlab中如何将(自定义)函数作为参数传递给另一个函数
- 作业五-设计一个程序计算输入的两个数的和与差,要求自定义一个函数 sum_diff(float op1, float op2, float *psum, float *pdiff),其中 op1 和 op2 是输入的两个数,*psum 和*pdiff 是计算得出的和与差.
- 创建自定义 AngularJS 指令:Part 3 孤立作用域与函数参数
- sql 自定义函数 ,where后拼接条件跳转语句,实现可变参数查询
- [Javascript] Javascript如何定义函数参数的默认值
- MATLAB 自定义函数拟合
- [初学笔记] matlab中 怎么判断输入的数据类型