Matlab如何实现函数重载?

   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()函数返回输入矩阵的最大元素。

时间: 2024-10-20 08:25:23

Matlab如何实现函数重载?的相关文章

【原创】Matlab.NET混合编程技巧之直接调用Matlab内置函数

              本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新    Matlab和C#混合编程文章目录 :[目录]Matlab和C#混合编程文章目录 在我的上一篇文章[原创]Matlab.NET混编技巧之--找出Matlab内置函数中,已经大概的介绍了matlab内置函数在混合编程中的优点,并通过程序找出了matlab中的大部分内置函数,当然更多人关心是如何像我所说得那样,不用直接编译,就直接在C#中调用这些内置函数.本文就带你揭开这些谜团. 声明,这篇文章是需要

Matlab.NET混合编程技巧之——直接调用Matlab内置函数(附源码)

原文:[原创]Matlab.NET混合编程技巧之--直接调用Matlab内置函数(附源码) 在我的上一篇文章[原创]Matlab.NET混编技巧之--找出Matlab内置函数中,已经大概的介绍了matlab内置函数在混合编程中的优点,并通过程序找出了matlab中的大部分内置函数,当然更多人关心是如何像我所说得那样,不用直接编译,就直接在C#中调用这些内置函数.本文就带你揭开这些谜团. 声明,这篇文章是需要一点点混合编程基础的,基本概念和过程要懂一点,如果能简单成功混编一个简单的计算或者绘图例子

matlab-c#调用MATLAB的solve函数

问题描述 c#调用MATLAB的solve函数 从网上查到的信息, c#调用MATLAB的函数一般是写出MATLAB的m文件之后编译生成dll文件,然后c#引用调用,但是在进行简单的加减没有问题,调用solve函数出现了问题,求答 解决方案 matlab有些函数是內建函数吧,这个你自己可以看看.就是solve函数本身还调用了matlab其他的函数.

为什么这个不能实现函数重载?

问题描述 为什么这个不能实现函数重载? public int hanshu(int a) { return a; } public void hanshu(int b) { Console.WriteLine(b); } 它们不是参数返回值都不同么? 解决方案 C#规定,函数重载必须是参数不同,相同参数不同返回值没法构成重载,非但没法构成重载,甚至编译都不通过. 所谓参数不同,是指参数个数不同,或者/并且参数在相同顺序上的类型不同,光形参名不同不算参数不同. 顺便说下,IL层面是支持不同返回值相

javascript arguments与javascript函数重载

1.所 有的函数都有属于自己的一个arguments对象,它包括了函所要调用的参数.他不是一个数组,如果用typeof arguments,返回的是'object'.虽然我们可以用调用数据的方法来调用arguments.比如length,还有index方法.但是数 组的push和pop对象是不适用的. 2.函数定义时的参数个数和函数调用时的参数个数没有任何关系. 在函数中可以用f.arguments[0]和f.arguments[1]得到调用时传入的第一和第二个参数,arguments不能够创建

javascript实现函数重载的深入探索

javascript|函数  <script>function Point2D(x, y){ this.x = x; this.y = y; Point2D.prototype.quadrant = function() {  if (x > 0 && y > 0) return "I";  else if (x < 0 && y > 0) return "II";  else if (x <

C#中的函数重载

函数 我们以前在C++中曾经知道C++中有函数重载的概念,现在在ASp.Net的C#中我们仍然可以使用函数重载的概念和定义:假设我们在程序中定义了两个函数:String test(String str1) 而后 int test1(int i),他们的内容都是很简单的功能String test(String str1){Response.Write("函数重载测试,这个是String函数");Return "123232";}int test(int i){Resp

让JavaScript轻松支持函数重载(Part 2

在"让 JavaScript 轻松支持函数重载 (Part 1 - 设计)"里,我们设计了一套能在JavaScript中描述函数重载的方法,这套方法依赖于一个叫做Overload的静态类,现在我们就来看看如何实现这个静态类. 识别文本签名 我们先来回顾一下上一篇文章中提到的Overload用例: var extend = Overload .add("*, ...", function(target) { }) .add("Boolean, *, ...&

让JavaScript轻松支持函数重载(Part 1

JavaScript支持重载吗? JavaScript支持函数重载吗?可以说不支持,也可以说支持.说不支持,是因为JavaScript不能好像其它原生支持函数重载的语言一样,直接写多个同名函数,让编译器来判断某个调用对应的是哪一个重载.说支持,是因为JavaScript函数对参数列表不作任何限制,可以在函数内部模拟对函数重载的支持. 实际上,在很多著名的开源库当中,我们都可以看到函数内部模拟重载支持的设计.例如说jQuery的jQuery.extend方法,就是通过参数类型判断出可选参数是否存在