《Matlab软件介绍.ppt》由会员分享,可在线阅读,更多相关《Matlab软件介绍.ppt(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第三讲 Matlab软件介绍13.1 基本介绍2Matlab软件介绍 Matlab软件的创立软件的创立v 时间:时间:1980年年v 首创者:首创者:Cleve Moler博士博士v 背背景景:在在New Mexico大大学学讲讲授授线线性性代代数数课课程程时时,看看到到了了用用高高级级语语言言编编程程解解决决工工程程计计算算问问题题的的诸诸多多不不便便,因因而而构构思思开开发发了了Matlab软软件件:Matrix Laboratory,矩阵实验室。矩阵实验室。3v 工工具具:利利用用了了他他此此前前开开发发的的LINPACK(线线性性代代数数软软件件包包)和和EISPACK(基基于于特特征
2、征值值计计算算的的软软件件包包)中中可可靠靠的的子子程程序序,用用Fortran语语言言编编写写而而成成,集集命令翻译、工程计算功能于一身。命令翻译、工程计算功能于一身。v 发发展展:80年年代代初初,Cleve Moler和和John Little采采样样C语语言言改改写写了了Matlab的的内内核核。不不久久,他他们们成成立立了了Mathworks软软件件开开发发公公司司,并并将将Matlab正正式式推推向向市场。市场。Matlab软件介绍4 现现在在的的Matlab新新版版本本早早已已不不只只停停留留在在工工程程计计算算功功能能上上,它它以以矩矩阵阵运运算算为为基基础础,把把计计算算、可
3、可视视化化、程程序序设设计计融融合合到到了了一一个个简简单单易易用用的的交交互互式工作环境中。式工作环境中。在在Matlab中中,可可以以实实现现工工程程计计算算、算算法法研研究究、符符号号运运算算、建建模模和和仿仿真真、原原型型开开发发、数数据据分分析析及及可可视视化化、科科学学和和工工程程绘绘图图、应应用用程程序序设设计计(包括图形用户界面设计包括图形用户界面设计)等功能。等功能。Matlab软件介绍5 正正是是凭凭借借Matlab的的这这些些突突出出优优势势,它它现现在在已已成成为世界上应用最广泛的工程计算软件。为世界上应用最广泛的工程计算软件。在在美美国国等等发发达达国国家家的的大大学
4、学里里,Matlab是是一一种种必必须须掌掌握握的的基基本本工工具具,而而在在国国外外的的研研究究设设计计单单位位和和工工业业部部门门,更更是是研研究究和和解解决决工工程程计计算算问问题题的的一一种种标准软件。标准软件。在在国国内内也也有有越越来来越越多多的的科科学学技技术术工工作作者者参参加加到学习和使用这门语言的行列中来。到学习和使用这门语言的行列中来。在在开开发发者者和和使使用用者者的的共共同同努努力力下下,Matlab正正在在成为计算机应用软件中的一个新热点。成为计算机应用软件中的一个新热点。Matlab软件介绍6 Matlab软件系统的构成软件系统的构成Matlab软件软件主包主包S
5、imulink工具箱工具箱Matlab软件介绍7 一一种种基基于于矩矩阵阵/数数组组的的高高级级语语言言,具具有有流流程程控控制制语语句句、函函数数、数数据据结结构构、输输入入输输出出、以以及及面面向向对象的程序设计特性。对象的程序设计特性。包包括括一一些些高高级级指指令令,用用以以实实现现二二维维和和三三维维数数据据可可视视化化、图图像像处处理理;还还有有一一些些低低级级指指令令,用用来来定定制图形的显示以及建立应用程序的用户界面。制图形的显示以及建立应用程序的用户界面。提提供供了了管管理理工工作作空空间间的的变变量量和和输输入入、输输出出数数据据的的功功能能,并并给给用用户户提提供供了了不
6、不同同的的工工具具用用以以开开发发、管理、调试管理、调试M文件和应用程序。文件和应用程序。包包含含了了如如求求和和、正正弦弦、余余弦弦、复复数数运运算算之之类类的的简简单单函函数数;也也包包含含了了矩矩阵阵转转置置、特特征征值值、贝贝塞塞尔尔函数、快速傅立叶变换等复杂函数。函数、快速傅立叶变换等复杂函数。向向C和和Fortran等等其其他他高高级级语语言言进进行行交交互互的的库库,包括读写包括读写Matlab数据文件。数据文件。主主包包语言语言工作环境工作环境句柄图形句柄图形数学函数库数学函数库应用程序接口应用程序接口(API)Matlab软件介绍8 Simulink Simulink是是用用
7、于于动动态态系系统统仿仿真真的的交交互互式式系系统统。Simulink允允许许用用户户在在屏屏幕幕上上绘绘制制框框图图来来模模拟拟一一个个系系统统,并并能能够够动动态态地地控控制制该该系系统统。Simulink采采用用鼠鼠标标驱驱动动方方式式,能能够够处处理理线线性性、非非线线性性、连连续续、离散、多变量以及多级系统。离散、多变量以及多级系统。Matlab软件介绍9 Matlab工具箱工具箱 工工具具箱箱是是Matlab用用来来解解决决各各个个领领域域特特定定问问题题的的函函数数库库,它它是是开开放放式式的的,可可以以应应用用,也也可可以以根根据据自自己己的需要进行扩展。的需要进行扩展。工工具
8、具箱箱为为用用户户提提供供了了丰丰富富而而实实用用的的资资源源,内内容容涵涵盖盖了了科科学学研研究究的的许许多多门门类类,目目前前已已有有涉涉及及数数学学、控控制制、通通信信、信信号号处处理理、图图像像处处理理、经经济济、地地理理等等20多种工具箱投入应用。多种工具箱投入应用。这这些些工工具具箱箱的的作作者者都都是是相相关关领领域域中中的的顶顶级级专专家家,从从而而确确定定了了Matlab软软件件的的权权威威性性。Mathworks公公司司也也一一直直致致力力于于追追踪踪各各学学科科的的最最新新进进展展,并并及及时时推推出出相相应功能的工具箱。应功能的工具箱。Matlab软件介绍10 MATL
9、AB入门入门一、变一、变 量量 与与 函函 数数二、数二、数 组组三、三、矩矩 阵阵四、四、MATLAB编程编程五、五、实实 验验 作作 业业11 1、变量、变量 MATLAB中变量的命名规则命名规则是:(1)变量名必须是不含空格的单个词;(2)变量名区分大小写;(3)变量名最多不超过19个字符;(4)变量名必须以字母打头,之后可以是 任意字母、数字或下划线,变量名中 不允许使用标点符号.一、变一、变 量量 与与 函函 数数12特殊变量表特殊变量表132、数学运算符号及标点符号、数学运算符号及标点符号(1)MATLAB的每条命令后,若为逗号逗号或或无标点无标点符号,则显示命令的结果;若命令后为
10、分号分号,则禁止显示结果.(2)“%”后面所有文字为注释.(3)“.”表示续行.143、数学函数、数学函数15 MATLAB的内部函数是有限的,有时为了研究某的内部函数是有限的,有时为了研究某一个函数的各种性态,需要为一个函数的各种性态,需要为MATLAB定义新函数,定义新函数,为此必须编写函数文件为此必须编写函数文件.函数文件是文件名后缀为函数文件是文件名后缀为M的文件,这类文件的的文件,这类文件的第一行必须是一特殊字符第一行必须是一特殊字符function开始开始,格式为:,格式为:function 因变量名因变量名=函数名(自变量名)函数名(自变量名)函数值的获得必须通过具体的运算实现,
11、并赋给因变函数值的获得必须通过具体的运算实现,并赋给因变量量.4、M文件文件M文件建立方法:文件建立方法:1.在在Matlab中,点中,点:File-New-M-file 2.在编辑窗口中输入程序内容在编辑窗口中输入程序内容 3.点:点:File-Save,存盘,存盘,M文件名必须文件名必须 与函数名一致。与函数名一致。Matlab的应用程序也以的应用程序也以M文件保存。文件保存。16例:定义函数例:定义函数 f(x1,x2)=100(x2-x12)2+(1-x1)2function f=fun(x)f=100*(x(2)-x(1)2)2+(1-x(1)21.建立建立M文件:文件:fun.mM
12、ATLAB(fun)2.可以直接使用函数可以直接使用函数fun.m例如:计算例如:计算 f(1,2),只需在只需在Matlab命令窗口键入命令:命令窗口键入命令:x=1 2fun(x)返回返回17x=logspace(first,last,n)创建从开始,到结束,有n个元素的对数分隔行向量.1、创建简单的数组、创建简单的数组二、数二、数 组组MATLAB(shuzu1)x=a b c d e f 创建包含指定元素的行向量x=first:last 创建从first开始,加1计数,到last结束的行向量x=first:increment:last 创建从first开始,加increment计数,l
13、ast结束的行向量x=linspace(first,last,n)创建从first开始,到last结束,有n个元素的行向量18 2、数组元素的访问数组元素的访问MATLAB(shuzu2)(3)直接使用元素编址序号直接使用元素编址序号.x(a b c d)表示提取数组x的第a、b、c、d个元素构成一个新的数组x(a)x(b)x(c)x(d).(2)访问一块元素访问一块元素:x(a:b:c)表示访问数组x的从第a个元素开始,以步长为b到第c个元素(但不超过c),b可以为负数,b缺损时为1.(1)访问一个元素访问一个元素:x(i)表示访问数组x的第i个元素.19 3 3、数组的方向、数组的方向 前
14、面例子中的数组都是一行数列,是行方向分布的前面例子中的数组都是一行数列,是行方向分布的.称之为称之为行向量行向量.数组也可以是数组也可以是列向量列向量,它的数组操作和运,它的数组操作和运算与行向量是一样的,唯一的区别是结果以列形式显示算与行向量是一样的,唯一的区别是结果以列形式显示.产生列向量有两种方法:产生列向量有两种方法:直接产生直接产生 例例 c=1;2;3;4 转置产生转置产生 例例 b=1 2 3 4;c=b 说明:以说明:以空格空格或或逗号逗号分隔的元素指定的是不同列的分隔的元素指定的是不同列的元素,而以元素,而以分号分号分隔的元素指定了不同行的元素分隔的元素指定了不同行的元素.2
15、04、数组的运算、数组的运算 (1)标量)标量-数组运算数组运算 数组对标量的加、减、乘、除、乘方是数组的每个数组对标量的加、减、乘、除、乘方是数组的每个元素对该标量施加相应的加、减、乘、除、乘方运算元素对该标量施加相应的加、减、乘、除、乘方运算.设:设:a=a1,a2,an,c=标量标量则:则:a+c=a1+c,a2+c,an+c a.*c=a1*c,a2*c,an*c a./c=a1/c,a2/c,an/c(右除)右除)a.c=c/a1,c/a2,c/an(左除)左除)a.c=a1c,a2c,anc c.a=ca1,ca2,can MATLAB(shuzu3)21(2)数组数组-数组运算数
16、组运算 当两个数组有相同维数时,加、减、乘、除、当两个数组有相同维数时,加、减、乘、除、幂运算可按幂运算可按元素对元素元素对元素方式进行的,不同大小或维方式进行的,不同大小或维数的数组是不能进行运算的数的数组是不能进行运算的.设:设:a=a1,a2,an,b=b1,b2,bn则:则:a+b=a1+b1,a2+b2,an+bn a.*b=a1*b1,a2*b2,an*bn a./b=a1/b1,a2/b2,an/bn a.b=b1/a1,b2/a2,bn/an a.b=a1b1,a2b2,anbnMATLAB(shuzu4)返回返回22三、三、矩矩 阵阵 逗号逗号或或空格空格用于分隔某一行的元素
17、,用于分隔某一行的元素,分号分号用于区分不用于区分不同的行同的行.除了分号,在输入矩阵时,按除了分号,在输入矩阵时,按Enter键也表示开始键也表示开始一新行一新行.输入矩阵时,严格要求所有行有相同的列输入矩阵时,严格要求所有行有相同的列.例例 m=1 2 3 4;5 6 7 8;9 10 11 12 p=1 1 1 1 2 2 2 2 3 3 3 31、矩阵的建立、矩阵的建立23特殊矩阵特殊矩阵的建立:.MATLAB(matrix1)d=eye(m,n)产生一个产生一个m行、行、n列的单位矩阵列的单位矩阵c=ones(m,n)产生一个产生一个m行、行、n列的元素列的元素 全为全为1的矩阵的矩
18、阵b=zeros(m,n)产生一个产生一个m行、行、n列的零矩阵列的零矩阵a=产生一个空矩阵,当对一项操作无结产生一个空矩阵,当对一项操作无结 果时,返回空矩阵,空矩阵的大小为零果时,返回空矩阵,空矩阵的大小为零.242、矩阵中元素的操作、矩阵中元素的操作MATLAB(matrix2)(1)矩阵)矩阵A的第的第r行:行:A(r,:),:)(2)矩阵)矩阵A的第的第r列:列:A(:,(:,r)(4)取矩阵)取矩阵A的第的第i1i2行、第行、第j1j2列构成新矩阵列构成新矩阵:A(i1:i2,j1:j2)(5)以逆序提取矩阵)以逆序提取矩阵A的第的第i1i2行,构成新矩阵行,构成新矩阵:A(i2:
19、-1:i1,:),:)(6)以逆序提取矩阵)以逆序提取矩阵A的第的第j1j2列,构成新矩阵列,构成新矩阵:A(:,j2:-1:j1)(7)删除)删除A的第的第i1i2行,构成新矩阵行,构成新矩阵:A(i1:i2,:,:)=(8)删除)删除A的第的第j1j2列,构成新矩阵列,构成新矩阵:A(:,:,j1:j2)=(9)将矩阵)将矩阵A和和B拼接成新矩阵:拼接成新矩阵:A B;A;B(3)依次提取矩阵)依次提取矩阵A的每一列,将的每一列,将A拉伸为一个列向量:拉伸为一个列向量:A(:)(:)25 (2)矩阵)矩阵-矩阵运算矩阵运算 1 元素对元素元素对元素的运算,同数组的运算,同数组-数组运算。数
20、组运算。3、矩阵的运算、矩阵的运算(1)标量)标量-矩阵运算矩阵运算 同标量同标量-数组运算。数组运算。MATLAB(matrix3)2矩阵运算:矩阵运算:矩阵加法:矩阵加法:A+B矩阵乘法:矩阵乘法:A*B方阵的行列式:方阵的行列式:det(A)方阵的逆:方阵的逆:inv(A)方阵的特征值与特征向量:方阵的特征值与特征向量:V,D=eigA 返回返回26关系与逻辑运算关系与逻辑运算 1、关系操作符、关系操作符272、逻辑运算符逻辑运算符281、for循环:循环:允许一组命令以固定的和预定的次数重复允许一组命令以固定的和预定的次数重复 for x=array commands end 在在fo
21、r和和end语句之间的命令串语句之间的命令串commands按数组(按数组(array)中的)中的每一列执行一次每一列执行一次.在每一次迭代中,在每一次迭代中,x被指定为数组的下一列,即在被指定为数组的下一列,即在第第n次循环中,次循环中,x=array(:,:,n)控制流控制流MATLAB提供三种决策或控制流结构:提供三种决策或控制流结构:for循环、循环、while循环、循环、if-else-end结构结构.这些结构经常包含大量的这些结构经常包含大量的MATLAB命令,故经常出现在命令,故经常出现在MATLAB程序中,而不是直接加在程序中,而不是直接加在MATLAB提示符下提示符下.例例
22、对对n=1,2,10,求求xn=的值的值MATLAB(for1)29 while expression commands end 只要在表达式只要在表达式(expression)里的所有元素为真,就执行里的所有元素为真,就执行while和和end语句之间的命令串语句之间的命令串commands.2、While循环循环 与与for循环以固定次数求一组命令相反,循环以固定次数求一组命令相反,while循环以不定的次循环以不定的次数求一组语句的值数求一组语句的值.MATLAB(while1)例例 设银行年利率为设银行年利率为11.25%。将。将10000元钱存入银行,元钱存入银行,问多长时间会连本带
23、利翻一番?问多长时间会连本带利翻一番?303、If-Else-End结构结构(1)有一个选择的一般形式是:)有一个选择的一般形式是:if expression commands end 如果在表达式如果在表达式(expression)里的所有元素为真,里的所有元素为真,就执行就执行if和和end语句之间的命令串语句之间的命令串commands.MATLAB(fun1)先建立先建立M文件文件fun1.m定义函数定义函数f(x),再在),再在Matlab命令窗口输入命令窗口输入fun1(2),fun1(-1)即可。即可。312)有三个或更多的选择的一般形式是:有三个或更多的选择的一般形式是:if
24、(expression1)commands1 else if (expression2)commands2 else if (expression3)commands3 else if elsecommands endendend end32 先建立先建立M文件文件fun2.m定义函数定义函数f(x),再在),再在Matlab命令窗口输入命令窗口输入fun2(2),fun2(0.5),fun2(-1)即即可。可。MATLAB(fun2)33Matlab软件介绍 Matlab界面介绍界面介绍 命令窗口命令窗口 当前路径当前路径 内存变量空间内存变量空间34 Matlab的指令输入有两种方式:的指
25、令输入有两种方式:一一种种是是在在命命令令窗窗口口(Command window)中中输输入指令,即单步执行方式;入指令,即单步执行方式;另另一一种种是是在在文文件件编编辑辑器器中中创创建建Matlab文文件件,即形成即形成.M文件。文件。Matlab软件介绍35但是在命令窗口中输入指令,存在着许多缺点:但是在命令窗口中输入指令,存在着许多缺点:文文本本编编辑辑功功能能差差,不不易易进进行行复复制制、粘粘贴贴以以及及文文件注释等功能;件注释等功能;指指令令不不能能以以文文件件的的形形式式保保存存,关关闭闭Matlab后后所所有指令就丢失了。有指令就丢失了。在在Matlab的的文文本本编编辑辑器
26、器中中输输入入,并并以以一一个个自自己己取取定定的的文文件件名名保保存存。当当当当前前路路径径设设置置为为文文件件所所保保存存的的路路径径时时,在在命命令令窗窗口口中中输输入入此此文文件件名名,就就可可以执行该文件的所有语句以执行该文件的所有语句 。Matlab软件介绍36Matlab软件介绍 Matlab对对矩矩阵阵的的操操作作非非常常简简单单,就就像像是是在在草草稿稿纸纸上上运运算算一一样样;并并且且可可以以快快速速求求出出该该矩矩阵阵的的转转置置、对称、逆等等。对称、逆等等。37Matlab软件介绍 Matlab是是一一种种基基于于向向量量(数数组组)而而不不是是标标量量的的高高级级程程
27、序序语语言言,因因而而从从本本质质上上就就提提供供了了对对图图像像的的支持。支持。数数字字图图像像实实际际上上就就是是一一组组有有序序的的离离散散数数据据,使使用用Matlab可可以以对对这这些些离离散散数数据据形形成成的的矩矩阵阵进进行行一一次性处理。次性处理。38Matlab软件介绍 图图像像处处理理工工具具箱箱是是Matlab众众多多toolbox中中的的一一种种,内内部部集集成成许许多多命命令令语语句句,可可以以实实现现对对图图像像的的低低级级和和高高级级的的处处理理操操作作,如如图图像像读读入入、显显示示、变变换、运算、分析和特定区域处理等等。换、运算、分析和特定区域处理等等。演示演示39对以下问题,编写M文件:(1)用起泡法对10个数由小到大排序.即将相邻两个数比较,将小的调到前头.(2)有一个 矩阵,编程求出其最大值及其所处的位置.(3)编程求(4)一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下.求它在第10次落地时,共经过多少米?第10次反弹有多高?(5)有一函数 ,写一程序,输入自变量的值,输出函数值.实验作业实验作业40