MATLAB函数 - Matlab教程

函数是一组语句一起执行任务。在MATLAB中,函数定义在单独的文件。文件函数的文件名应该是相同的。

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

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

函数语句的语法是:

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

例子

下面的函数名为mymax,应当书面,在一个文件名为mymax.m。它需要五个数字作为参数并返回最大的数字。

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

function max = mymax(n1, n2, n3, n4, n5)

%This function calculates the maximum of the

% five numbers given as input

max = n1;

if(n2 > max)

max = n2;

end

if(n3 > max)

max = n3;

end

if(n4 > max)

max = n4;

end

if(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命令行或在一个函数或脚本。

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

创建一个匿名函数表达式的语法

f = @(arglist)expression

例子

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

创建一个脚本文件,并键入下面的代码:

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 =

343

result2 =

7

result3 =

1.0000e-10

result4 =

9.5459

主要和子函数

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

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

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

例子

让我们写一个名为quadratic 函数计算一元二次方程的根。则该函数将需要三个输入端,二次系数,线性合作高效的和常数项。它会返回根。

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

创建一个函数文件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 roots

d = disc(a,b,c);

x1 = (-b + d) / (2*a);

x2 = (-b - d) / (2*a);

end % end of quadratic

function dis = disc(a,b,c)

%function calculates the discriminant

dis = sqrt(b^2 - 4*a*c);

end % end of sub-function

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

quadratic(2,4,-4)

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

ans =

0.7321

嵌套函数

在这个机体内另一个函数,可以定义函数。这些被称为嵌套函数。嵌套函数包含任何其他函数的任何或所有的组件。

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

嵌套函数的语法如下:

function x = A(p1, p2)

...

B(p2)

function y = B(p3)

...

end

...

end

例子

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

创建一个函数文件quadratic2.m,并输入下面的代码:

function [x1,x2] = quadratic2(a,b,c)

function disc % nested function

d = sqrt(b^2 - 4*a*c);

end % end of function disc

disc;

x1 = (-b + d) / (2*a);

x2 = (-b - d) / (2*a);

end % end of function quadratic2

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

quadratic2(2,4,-4)

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

ans =

0.7321

私有函数

一个私有函数是一个主要的函数,是只看得见一组有限的其它函数。如果不想公开的执行的一个函数,可以创建私有函数。

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

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

例子

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

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

function dis = disc(a,b,c)

%function calculates the discriminant

dis = 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 roots

d = disc(a,b,c);

x1 = (-b + d) / (2*a);

x2 = (-b - d) / (2*a);

end % end of quadratic3

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

quadratic3(2,4,-4)

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

ans =

0.7321

全局变量

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

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

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

例子

让我们创建一个函数文件名为average.m和输入下面的代码:

function avg = average(nums)

global TOTAL

avg = sum(nums)/TOTAL;

end

创建一个脚本文件,并键入下面的代码:

global TOTAL;

TOTAL = 10;

n = [34, 45, 25, 45, 33, 19, 40, 34, 38, 42];

av = average(n)

当您运行该文件,就会显示以下结果:

av =

35.5000

powered by Gitbook

该教程制作时间: 2016-01-26 09:36:04

matlab 函数教程,MATLAB函数 - Matlab教程相关推荐

  1. 求介绍matlab函数用法的书,MATLAB初学者教程--函数用法的简单介绍

    1.4 函数用法的简单介绍 1.4.1什么是函数 似乎很多人一听到函数这个词就会想到数学中的某个概念,然后对于恐惧数学的同学就开始打退堂鼓.在matlab当中到处可以用到函数,它的出现可以让我们用很简 ...

  2. matlab2c使用c++实现matlab函数系列教程-sign函数

    全栈工程师开发手册 (作者:栾鹏) matlab2c动态链接库下载 matlab库函数大全 matlab2c基础教程 matlab2c开发全解教程 matlab2c调用方法: 1.下载动态链接库 2. ...

  3. matlab2c使用c++实现matlab函数系列教程-find函数

    全栈工程师开发手册 (作者:栾鹏) matlab2c动态链接库下载 matlab库函数大全 matlab2c基础教程 matlab2c开发全解教程 matlab2c调用方法: 1.下载动态链接库 2. ...

  4. matlab 解函数方程,MATLAB程序设计教程(7)—MATLAB解方程与函数极值

    MATLAB程序设计教程(7)--MATLAB解方程与函数极值 第7章MATLAB解方程与函数极值 7.1  线性方程组求解 7.2  非线性方程数值求解 7.3  常微分方程初值问题的数值解法 7. ...

  5. matlab2c使用c++实现matlab函数系列教程-sinc函数

    全栈工程师开发手册 (作者:栾鹏) matlab2c动态链接库下载 matlab库函数大全 matlab2c基础教程 matlab2c开发全解教程 matlab2c调用方法: 1.下载动态链接库 2. ...

  6. matlab求函数极值教程,MATLAB程序设计教程(7)—MATLAB解方程与函数极值

    MATLAB程序设计教程(7)--MATLAB解方程与函数极值 第7章MATLAB解方程与函数极值 7.1  线性方程组求解 7.2  非线性方程数值求解 7.3  常微分方程初值问题的数值解法 7. ...

  7. matlab数组求一阶导数,用matlab求符号函数数组或函数矩阵的导数实例教程

    用matlab求符号函数数组或函数矩阵的导数实例教程 在符号矩阵中,矩阵的每个元素都可以存放符号函数,这是对符号函数数组的求到运算是对数组元素逐个进行的.接下来就以实例向大家介绍一下用matlab对符 ...

  8. matlab教程lqg函数与收敛速度,科学网—Matlab编写由加速度积分得到速度和位移函数 - 王德才的博文...

    研究中经常会用到将加速度数据积分成速度和位移,对前几年编写的程序重新进行了改写.为了测试和验证peer2acc函数.dirFolder函数和acc2vd函数,编写了一个简单的测试程序 acc2vd函数 ...

  9. matlab写函数教程,【Matlab基础】 自定义函数

    函数--是编程的核心概念之一,是能够完成相对独立功能的代码封装成的模块. 在主程序中通过函数名和实参调用它,通过接口(即函数的输入.输出参数)来实现"通讯".所以在调用函数时,你只 ...

  10. matlab解方程教程,MATLAB程序设计教程(7)—MATLAB解方程与函数极值

    第7章 MATLAB解方程与函数极值 7.1 线性方程组求解 7.2 非线性方程数值求解 7.3 常微分方程初值问题的数值解法 7.4 函数极值 7.1 线性方程组求解 7.1.1 直接解法 1.利用 ...

最新文章

  1. Meteor:发布与订阅
  2. JavaScript设计模式与开发实践——JavaScript的多态
  3. python速成要多久2019-8-28_Python脱产8期 Day13 2019/4/28
  4. java 树 右键菜单_jQuery实现自定义右键菜单的树状菜单效果
  5. Educational Codeforces Round 54 (Rated for Div. 2) D Edge Deletion (SPFA + bfs)
  6. 《spring-boot学习》-10-RabbitMQ
  7. 牛客网SQL数据库实战之查找入职员工时间排名倒数第三的员工所有信息
  8. DB2 SQL Error: SQLCODE=-302, SQLSTATE=22001, SQLERRMC=null
  9. typecast java_Delphi设置无效的Typecast
  10. 计算机科学的方法论有三个过程,计算机科学与技方法论3.ppt
  11. python平方和计算技巧,python平方和计算技巧 Python算法练习题:四平方和
  12. C++学习-Day-19
  13. 计算机英语构词法,计算机专业英语的构词方法论文
  14. 工业防腐漆的作用,你知道的有几个
  15. 执行this.$destory()指令后,原生DOM也没有响应的问题
  16. win32 014 使用ResEdit 资源编译器 可视化编程 资源的编写
  17. 计算机 北航 在线作业,北航计算机组成原理在线作业
  18. 标贝科技登全球语音大赛舞台Blizzard Challenge做精彩开场发言
  19. ReentrantReadWriteLock入门级
  20. cc2540 cc2541 开发板资料更新日志

热门文章

  1. Burp Suite 扫描工具
  2. 人工智能 一种现代方法 第2章 智能化智能体
  3. iptv错误代码2003什么意思_IPTV部分错误代码和原因解释
  4. c语言如何注释一段代码,如何在C语言注释一段代码?【C++培训】
  5. centos-7版本 安装向日葵远程
  6. 科目3|软考高项论文写作技巧
  7. vscode字体等宽策略( JetBrains Mono NL + 思源黑体 HW )
  8. 手把手教你用ls-dyna做入水冲击荷载仿真分析(一)大体介绍
  9. LDA算法原理及LDA与PCA的比较
  10. 【Flex】FLEX工程合并留意错误。