Matlab如何实现函数重载?Matlab实现函数重载的方法
大家应该都知道C++和Java编程能够实现函数的重载,而当我们使用Matlab的一些函数,如:plot函数,可以发现该函数可以有不同的输入,如:plot(data)、plot(t,data)和plot(X,Y,'LineWidth',2)等。这些就是matlab函数重载的应用。
下面我就通过一个简单的输出输入数中的最大数的函数fun()来说明Matlab在编辑函数时如何实现重载。
方法/步骤:
1.首先打开Matlab(本人使用的是Matlab 2015a,使用其他版本的Matlab影响不大)。在Common Window里输入edit fun(fun可改为任意字符,只为演示用),打开M文件编辑器,此时已创建M文件,文件名为fun。
2.在编辑器内输入 function y=fun(varargin),varargin是Matlab内部变量,类型为元胞数组,如果改为其他变量则会报错。
3.添加代码 narginchk(2,3); 保证输入量的个数,当个数小于2或大于3时程序会报错。
4.Matlab内部有一个nargin变量用于存储函数中输入量的个数。下面用If语句来实现函数的重载。
输入
if nargin==2
a=varargin{1};
b=varargin{2};
y=max([a,b]);
...
通过这段代码,函数可实现输入两个量时的功能。
其中用a来存放输入量的第一个量,用b来存放输入量的第二个量。max()函数返回输入矩阵的最大元素。
5.再输入
elseif nargin==3
a=varargin{1};
b=varargin{2};
c=varargin{3};
y=max([a,b,c]);
end
通过这段代码,函数可实现输入两个量时的功能。
其中用a来存放输入量的第一个量,用b来存放输入量的第二个量,用c来存放输入量的第三个量。
效果如下图
6.保存之后,下面对所编辑的函数进行验证。
Command Window 中分别输入
answer1=fun(12,13,14)
answer2=fun(16,25)
answer3=fun(16)
answer4=fun(12,13,14,15)
结果如下图
7.准确的讲,matlab函数的重载并不是严格意义上的函数重载,但是通过对变量的合理运用,能够实现重载的功能。
希望这一条经验能够帮助到大家!
注意事项
编辑函数是输入变量一定得是varargin,否则Matlab会将输入变量视为一个。
if语句一定要加end
相关文章
- 我们知道matlab中有很多功能的函数,可以直接调用。但在实际生活中,面对不同的问题,有不同的算法,因此有时候我们需要自定义对应于实际情况的函数。Matlab如何建立自定义2016-10-28
- Matlab是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境;这款软件功能强大;也可以用于处理图像;Matlab图像如何处理?下面小编为大2016-10-27
- matlab是一款商业数学软件;用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,应用非常之广泛!很多朋友不会使用Matlab极坐标曲线绘制;该2016-10-27
- matlab画图线条怎么选择类型和颜色?matlab绘制图形的时候,需要选择线条的类型和颜色,今天我们就来教大家比较基础的胶层,下面将以一个简单的绘图为例,需要的朋友可以参2016-05-09
- Matlab怎么绘制离散图?画离散图需要使用函数plot(),及泥潭我们就俩给大家介绍两种matlab画散点图的方法,图文教程很详细,需要的朋友可以参考下2016-04-26
- Matlab怎么导出eps或jpg图片?方法有很多,之前我们也介绍过,今天我们来给大家补充汇总一下,一共有四种方法,需要的朋友可以进来参考一下2016-04-08
- MATLAB怎么读取excel文件中的数据?想将excel中的数据导入MATLAB软件中,但是这里有两种情况,一种是读取所有数据,另一种是读取指定数据,下面我们来看看这两种情况的读取2016-03-09
- matlab中失误将command窗口关掉了该怎么办?关闭command窗口以后发现找不到了,该怎么才能调出command界面呢?请看下文详细介绍2016-02-29
- Matlab中怎么更改字体的大小?有的时候Matlab中默认的字体我们不一定看得习惯,有可能会觉得很小,想设置大一点方便看清楚,今天我们就来看看Matlab中更改字体的大小的教程2016-02-27
matlab如何实现曲线拟合? matlab做曲线拟合的教程
matlab如何实现曲线拟合?我们在研究两个变量之间的关系时,经常要用到曲线拟合,用图形直观的展现出变量之间的关系,下面分享matlab做曲线拟合的教程,需要的朋友可以参考2015-11-18
最新评论