在MATLAB中,函数定义在单独的文件。文件函数的文件名应该是相同的。

函数是一组语句一起执行任务。

函数在自己的工作空间进行操作,被称为本地工作区,独立的工作区;在 MATLAB 命令提示符访问,这就是所谓的基础工作区的变量。

函数可以接受多个输入参数和可能返回多个输出参数。

函数语句的语法是:

function [out1,out2, ..., outN] = myfun(in1,in2,in3, ..., inN)

详细例子

下述有个 mymax 函数,它需要五个数字作为参数并返回最大的数字。

建立函数文件,命名为 mymax.m 并输入下面的代码:

function max = mymax(n1, n2, n3, n4, n5)%This function calculates the maximum of the% five numbers given as inputmax =  n1;if(n2 > max)    max = n2;endif(n3 > max)   max = n3;endif(n4 > max)    max = n4;endif(n5 > max)    max = n5;end

每个函数的第一行要以 function 关键字开始。它给出了函数的名称和参数的顺序。

在我们的例子中,mymax 函数有5个输入参数和一个输出参数。

注释行语句的功能后提供的帮助文本。这些线条打印,当输入:

help mymax

MATLAB执行上述语句,返回以下结果:

This function calculates the maximum of the five numbers given as input

可以调用该函数:

mymax(34, 78, 89, 23, 11)

MATLAB执行上述语句,返回以下结果:

ans =    89

MATLAB匿名函数

一个匿名的函数就像是在传统的编程语言,在一个单一的 MATLAB 语句定义一个内联函数。

它由一个单一的 MATLAB 表达式和任意数量的输入和输出参数。

在MATLAB命令行或在一个函数或脚本可以定义一个匿名函数。

这种方式,可以创建简单的函数,而不必为他们创建一个文件。

建立一个匿名函数表达式的语法如下:

f = @(arglist)expression

详细例子

在这个例子中,我们将编写一个匿名函数 power,这将需要两个数字作为输入并返回第二个数字到第一个数字次幂。

在MATLAB中建立一个脚本文件,并输入下述代码:

power = @(x, n) x.^n;result1 = power(7, 3)result2 = power(49, 0.5)result3 = power(10, -10)result4 = power (4.5, 1.5)

运行该文件时,显示结果:

result1 =   343result2 =     7result3 =   1.0000e-10result4 =    9.5459

主要函数和子函数

在一个文件中,必须定义一个匿名函数以外的任何函数。每个函数的文件包含一个必需的主函数和首先出现的任何数量的可选子函数,在主要函数之后使用。

主要函数可以调用的文件,它定义之外,无论是从命令行或从其他函数,但子功能不能被称为命令行或其他函数,外面的函数文件。

子功能可见函数内的文件,它定义它们的主要函数和其他函数。

详细例子

我们写一个 quadratic 函数来计算一元二次方程的根。

该函数将需要三个输入端,二次系数,线性合作高效的和常数项,它会返回根。

函数文件 quadratic.m 将包含的主要 quadratic 函数和子函数 disc 来计算判别。

在MATLAB中建立一个函数文件 quadratic.m 并输入下述代码:

function [x1,x2] = quadratic(a,b,c)%this function returns the roots of % a quadratic equation.% It takes 3 input arguments% which are the co-efficients of x2, x and the %constant term% It returns the rootsd = disc(a,b,c); x1 = (-b + d) / (2*a);x2 = (-b - d) / (2*a);function dis = disc(a,b,c) %function calculates the discriminantdis = sqrt(b^2 - 4*a*c);end % end of sub-functionend % end of quadratic

可以从命令提示符调用上述函数为:

[a,b] = quadratic(2,4,-4)

MATLAB执行上面的语句,返回以下结果:

>> [a,b] = quadratic(2,4,-4)
a =
    0.7321b =
   -2.7321

MATLAB嵌套函数

在这个机体内另一个函数,可以定义函数。这些被称为嵌套函数。

嵌套函数包含任何其他函数的任何或所有的组件。

嵌套函数被另一个函数的范围内定义他们共享访问包含函数的工作区。

嵌套函数的语法如下:

function x = A(p1, p2)...B(p2)   function y = B(p3)   ...   end...end

详细例子

我们重写前面例子的 quadratic 函数,但是,这一次的 disc 函数将是一个嵌套函数。

在MATLAB中建立一个函数文件 quadratic2.m,并输入下述代码:

​​​​​​​

function [x1,x2] = quadratic(a,b,c)d = disc(a,b,c);function d = disc(a,b,c)  % nested functiond = sqrt(b^2 - 4*a*c);end % end of function disc
x1 = (-b + d) / (2*a);x2 = (-b - d) / (2*a);end % end of function quadratic2

可以从命令提示符调用上面的函数为:

[a,b] = quadratic2(2,4,-4)

MATLAB执行上面的语句,返回以下结果:

>> [a,b] = quadratic(2,4,-4)
a =
    0.7321b =
   -2.7321

MATLAB私有函数

一个私有函数是一个主要的函数,是只看得见一组有限的其它函数。

如果不想公开的执行的一个函数,可以创建私有函数。

私有函数驻留特殊的名字私人的子文件夹中。

他们是可见的,只有在父文件夹的函数。

详细例子

重写 quadratic 函数。然而,这时计算的判别式 disc 函数,是一个私有函数。

在MATLAB中建立一个子文件夹命名为私人工作目录。它存储在以下函数文件 disc.m:

function dis = disc(a,b,c) %function calculates the discriminantdis = sqrt(b^2 - 4*a*c);end % end of sub-function

在工作目录,创建一个函数 quadratic3.m ,输入下述代码:

function [x1,x2] = quadratic3(a,b,c)%this function returns the roots of % a quadratic equation.% It takes 3 input arguments% which are the co-efficients of x2, x and the %constant term% It returns the rootsd = disc(a,b,c); x1 = (-b + d) / (2*a);x2 = (-b - d) / (2*a);end % end of quadratic3

可以从命令提示符调用上面的函数为:

[a,b] = quadratic3(2,4,-4)

MATLAB执行上面的语句,返回以下结果:

>> [a,b] = quadratic(2,4,-4)
a =
    0.7321b =
   -2.7321

MATLAB全局变量

全局变量可以共享由一个以上的函数。对于这一点,需要将变量声明为全局在所有的函数可使用。

如果想访问该变量从基工作区,然后在命令行声明的变量。

全局声明必须出现在变量中实际上是使用功能。这是一个很好的做法是使用大写字母为全局变量的名称,以区别于其他变量。

详细例子

创建一个函数文件名为 average.m ,输入下述代码:

function avg = average(nums)global TOTALavg = sum(nums)/TOTAL;end

在MATLAB中建立一个脚本文件,输入下面的代码:

  • ​​​​​​​
global TOTAL;TOTAL = 10;n = [34, 45, 25, 45, 33, 19, 40, 34, 38, 42];av = average(n)

运行该文件,显示以下结果:

av =   35.5000

【新星计划】MATLAB-定义函数相关推荐

  1. 怎么调出matlab的函数,matlab定义函数【搞定方法】

    喜欢使用电脑的小伙伴们一般都会遇到win7系统matlab定义函数的问题,突然遇到win7系统matlab定义函数的问题就不知道该怎么办了,其实win7系统matlab定义函数的解决方法非常简单,按照 ...

  2. matlab 定义函数 调用,matlab 定义函数,matlab定义函数并调用

    matlab 定义函数,matlab定义函数并调用,Matlab自定义函数详解 很久以前写的一篇Matlab自定义函数访问量很大,可惜没有点赞的,我感觉是我没讲清楚,这里又写了一篇笔记 Matlab函 ...

  3. matlab怎么做函数,Matlab定义函数怎么操作?进行定义函数教程分享

    当我们在使用Matlab的时候,因需求要进行定义函数,有些朋友还不熟悉操作方法?下面一起去看看Matlab定义函数的详细操作教程,相信你会喜欢的. Matlab定义函数的详细操作教程 方法一:通过in ...

  4. 【MATLAB定义函数的几种方式】

    MATLAB定义函数的几种方式 方法1:函数文件+函数名调用 比如我想要定义如下函数 f(x)=x2+1f(x)=x^2+1 f(x)=x2+1 可以现在脚本中写一个fun函数,并将其存储为函数同名文 ...

  5. matlab如何定义函数类型,Matlab如何定义函数?Matlab定义函数的方法

    Matlab是一款著名的商业数学软件,它的功能十分强大,我们常常会使用它解决一些数学难题.但是刚开始使用它的时候经常会遇到一些难题,比如Matlab如何定义函数,如果你不知道的话,赶紧看看小编整理的M ...

  6. matlab函数定义,matlab定义函数【详细说明】

    有不少用户在使用电脑的过程中可能会碰到matlab定义函数的情况.大部分用户电脑技术都是菜鸟水平,面对matlab定义函数的问题,无法自行解决.不少用户都来咨询小编matlab定义函数要怎么处理?其实 ...

  7. 用matlab定义位移函数,matlab 定义函数(Matlab怎么调用函数 自定义函数使用方法)...

    matlab 定义函数(Matlab怎么调用函数 自定义函数使用方法),哪吒游戏网给大家带来详细的matlab 定义函数(Matlab怎么调用函数 自定义函数使用方法)介绍,大家可以阅读一下,希望这篇 ...

  8. 命令行下使用matlab写函数,matlab定义函数【搞定方法】

    喜欢使用电脑的小伙伴们一般都会遇到win7系统matlab定义函数的问题,突然遇到win7系统matlab定义函数的问题就不知道该怎么办了,其实win7系统matlab定义函数的解决方法非常简单,按照 ...

  9. 使用matlab定义函数极限,MATLAB在函数极限定义教学中的应用

    龙源期刊网 http://www.doczj.com/doc/863ba24b195f312b3169a5c0.html MATLAB在函数极限定义教学中的应用 作者:赵志芳 来源:<外语学法教 ...

  10. matlab定义函数多输入,matlab .m文件中定义多个函数

    matlab帮助系统中的说明: Functions The main difference between a script and a function is thata function acce ...

最新文章

  1. oracle查看联机日志,oracle联机日志和归档日志
  2. Python LDA主题模型实战
  3. redis 数据完整性
  4. [leetcode] 874. 行走机器人模拟(周赛)
  5. sonar 报错日志分析(根据日志跟踪源码执行)
  6. 今日听闻这几款手机软件比较火爆 果然名不虚传!
  7. 安装翻译_百度翻译下载安装官方地址
  8. Android自定义控件(二) 滑动开关
  9. NCC项目搭建及版本管理规范手册
  10. 微信怎样知道经常聊天的人
  11. 两个特别的10分钟临时邮箱、免费
  12. 安卓系统添加字体库和修改系统默认的字体
  13. 腾讯云cdn怎样接入域名
  14. SSD-tensorflow-2 制作自己的数据集
  15. GradientDrawable 渐变背景使用
  16. 用Excel地图可视化——2017世界各国和地区GDP排名(初步统计版)
  17. Electron桌面应用打包流程详情
  18. PS 2019 Mac版 自学入门系列(十二)—— 应用滤镜
  19. Json 实现数据添加/更新 的页面效果
  20. 记忆益智七巧板等小游戏接口

热门文章

  1. Matlab并行编程函数cellfun arrayfun
  2. Hive安装问题简述
  3. numpy.add详解
  4. github关联域名,创建个人网站教程终结篇
  5. 【机器学习算法-python实现】svm支持向量机(3)—核函数
  6. 你真的懂redis的数据结构了吗?redis内部数据结构和外部数据结构揭秘
  7. The LMAX disruptor Architecture--转载
  8. 基于注解的Spring AOP的配置和使用--转载
  9. 【Xmind】,让你的大脑解放出来
  10. 再理解RankNet算法