Matlab如何实现函数重载?Matlab实现函数重载的方法

  发布时间:2016-12-12 14:04:00   作者:佚名   我要评论
C语言中可以通过参数的个数和数据类型来区分同名函数,实现函数的重载。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中有很多功能的函数,可以直接调用。但在实际生活中,面对不同的问题,有不同的算法,因此有时候我们需要自定义对应于实际情况的函数。Matlab如何建立自定义
    2016-10-28
  • Matlab图像如何处理?Matlab图像处理的基本操作

    Matlab是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境;这款软件功能强大;也可以用于处理图像;Matlab图像如何处理?下面小编为大
    2016-10-27
  • Matlab极坐标曲线绘制的方法

    matlab是一款商业数学软件;用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,应用非常之广泛!很多朋友不会使用Matlab极坐标曲线绘制;该
    2016-10-27
  • matlab画图线条怎么选择类型和颜色?

    matlab画图线条怎么选择类型和颜色?matlab绘制图形的时候,需要选择线条的类型和颜色,今天我们就来教大家比较基础的胶层,下面将以一个简单的绘图为例,需要的朋友可以参
    2016-05-09
  • Matlab怎么绘制离散图? matlab画散点图的教程

    Matlab怎么绘制离散图?画离散图需要使用函数plot(),及泥潭我们就俩给大家介绍两种matlab画散点图的方法,图文教程很详细,需要的朋友可以参考下
    2016-04-26
  • Matlab导出eps或jpg图片的四种方法

    Matlab怎么导出eps或jpg图片?方法有很多,之前我们也介绍过,今天我们来给大家补充汇总一下,一共有四种方法,需要的朋友可以进来参考一下
    2016-04-08
  • MATLAB怎么读取excel文件中的数据?

    MATLAB怎么读取excel文件中的数据?想将excel中的数据导入MATLAB软件中,但是这里有两种情况,一种是读取所有数据,另一种是读取指定数据,下面我们来看看这两种情况的读取
    2016-03-09
  • matlab中失误将command窗口关掉了该怎么办?

    matlab中失误将command窗口关掉了该怎么办?关闭command窗口以后发现找不到了,该怎么才能调出command界面呢?请看下文详细介绍
    2016-02-29
  • Matlab中怎么更改字体的大小?

    Matlab中怎么更改字体的大小?有的时候Matlab中默认的字体我们不一定看得习惯,有可能会觉得很小,想设置大一点方便看清楚,今天我们就来看看Matlab中更改字体的大小的教程
    2016-02-27
  • matlab如何实现曲线拟合? matlab做曲线拟合的教程

    matlab如何实现曲线拟合?我们在研究两个变量之间的关系时,经常要用到曲线拟合,用图形直观的展现出变量之间的关系,下面分享matlab做曲线拟合的教程,需要的朋友可以参考
    2015-11-18

最新评论