本文共 834 字,大约阅读时间需要 2 分钟。
说明
matlab不支持重载功能,但是我们可以通过某些方法去实现类似重载的功能。笔记
varargin
变量是元胞数组类型,调用函数testFun
时,输入的函数参数将自动转成元胞数组。此处注意,要想实现重载功能,函数的输入参数必须是
varargin
,而调用函数时输入的参数,必须使用[]
括起来.
narginchk(m,n)
用来限制输入参数的数量范围,即至少输入m
个参数,最多输入n
个参数,不符合条件则会自动报错.如果不用
narginchk(m,n)
,程序会自动执行完,出现其他谜一样的未知错误,建议还是使用比较好
nargin
变量,使用它即可。function [y] = testFun(varargin) narginchk(2,3) if nargin==2 a = varargin{ 1,1}; b = varargin{ 1,2}; c = zeros(1,5); elseif nargin==3 a = varargin{ 1,1}; b = varargin{ 1,2}; c = varargin{ 1,3}; end y = a + b + c;end
实例
测试函数:function y = testFun(varargin) if nargin==2 y=2; elseif nargin==3 y=3; endend
调用:
由于[1 1 1]
算一个参数,因此程序正常执行完,没有返回值 注意变量之间必须要用
,
隔开
要点
varargin
nargin
[]
narginchk(m,n)
转载地址:http://mowxf.baihongyu.com/