《第一讲 matlab简介及其基础.ppt》由会员分享,可在线阅读,更多相关《第一讲 matlab简介及其基础.ppt(55页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 MATLAB编程与应用课程学时安排学时:42学时安排:讲课30学时,上机12学时学习内容一、一、MATLAB基础(22)二、MATLAB的应用(8)一、一、MATLAB概述二、MATLAB的数值运算功能三、MATLAB的符号运算功能三、三、MATLAB程序设计四、MATLAB中的计算结果可视化五、Simulink仿真初步六、MATLAB的工具箱七、MATLAB的应用具体内具体内容容一、MATLAB概述(一)(一)MATLAB语言的发展:语言的发展:MATLAB名字由名字由MATrix和和 LABoratory 两词的前三个字母两词的前三个字母组合而成。那是组合而成。那是20世纪七十年代,时任
2、美国新墨西哥大学计世纪七十年代,时任美国新墨西哥大学计算机科学系主任的算机科学系主任的Cleve Moler出于减轻学生编程负担的动机,出于减轻学生编程负担的动机,为学生设计了一组调用为学生设计了一组调用LINPACK和和EISPACK矩阵软件工具矩阵软件工具包库程序的的包库程序的的“通俗易用通俗易用”的接口,此即用的接口,此即用FORTRAN编写编写的萌芽状态的的萌芽状态的MATLAB。1984年由Little、Moler、Steve Bangert合作成立MathWorks公司,并把MATLAB正式推向市场。从这时起,MATLAB的内核采用C语言编写,而且除原有的数值计算能力外,还新增了数
3、据图视功能。现今的matlab7.0拥有更丰富的数据类型和结构、更友善的面向对象、更加快速精良的图形可视、更广博的数学和数据分析资源、更多的应用开发工具。自MathWorks公司1993年推出matlab4.0问世以来,matlab语言就成为了最具吸引力、应用最为广泛的科学计算语言;1997年仲春,matlab5.0版问世,紧接着是5.1、5.2,以及1999年春的5.3版。2001年和2002年mathworks公司又相继推出了强大的matlab升级版本matlab6.0和matlab6.5(二)(二)MATLAB语言的特点:语言的特点:1)语言简洁紧凑,使用方便灵活,库函数极其丰富 MAT
4、LAB程序书写形式自由,利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。可以说,用MATLAB进行科技开发是站在专家的肩膀上。2)运算符丰富由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短。3)MATLAB既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性。4)程序限制不严格,程序设计自由度大例如,在MATLAB里,用户无需对矩阵预定义就可使用。5)程序的可移植性很好,基本上不做修
5、改就可以在各种型号的计算机和操作系统上运行。6)MATLAB的图形功能强大。在FORTRAN和C语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。MATLAB还具有较强的编辑图形界面的能力。7)功能强大的工具箱是MATLAB的另一特色。MATLAB包含两个部分:核心部分:有数百个核心内部函数 各种可选的工具箱 工具箱又分为两类:功能性工具箱 学科性工具箱功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及与硬件实时交互功能,功能性工具箱用于多种学科。学科性工具箱是专业性比较强的,面向专门的学科领域。如control toolbox,signl procee
6、ssing toolbox,commumnication toolbox等。这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,而可直接进行高,精,尖的研究。符号数学工具箱符号数学工具箱SIMULINK仿真工具箱仿真工具箱控制系统工具箱控制系统工具箱信号处理工具箱信号处理工具箱图像处理工具箱图像处理工具箱通讯工具箱通讯工具箱系统辨识工具箱系统辨识工具箱小波分析工具箱小波分析工具箱神经元网络工具箱神经元网络工具箱金融工具箱金融工具箱8)源程序的开放性开放性也许是MATLAB最受人们欢迎的特点。除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可
7、改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。9)MATLAB的缺点:和其他高级程序相比,程序的执行速度较慢。由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。(三)(三)MATLAB语言的功能:语言的功能:强大的数值(矩阵)运算功能强大的数值(矩阵)运算功能广泛的符号运算功能广泛的符号运算功能计算结果的可视化功能计算结果的可视化功能可靠的容错功能可靠的容错功能应用灵活的兼容与接口功能应用灵活的兼容与接口功能信息量丰富的联机检索功能信息量丰富的联机检索功能1.矩阵运算功能MATLAB提供了丰富的矩阵运算处理功能,是基于矩阵运算的处
8、理工具。变量 矩阵,运算 矩阵的运算例如 C=A+B,A,B,C都是矩阵,是矩阵的加运算即使一个常数,Y=5,MATLAB也看做是一个11的矩阵2.符号运算功能符号运算即用字符串进行数学分析允许变量不赋值而参与运算用于解代数方程、微积分、复合导数、积分、二重积分、有理函数、微分方程、泰乐级数展开、寻优等等,可求得解析符号解3.丰富的绘图功能与计算结果的可视化具有高层绘图功能两维、三维绘图具有底层绘图功能句柄绘图绘制matlab图标load logosurf(L,R),colormap(M),N=length(L(:,1)4.图形化程序编制功能动态系统进行建模、仿真和分析的软件包用结构图编程,而
9、不用程序编程只需拖几个方块、连几条线,即可实现编程功能5.MATLAB的容错功能非法操作时,给出提示,并不影响其操作1/0Warning:Divide by zeroans=Inf6.MATLAB的兼容功能可与C语言、FORTURE语言跨平台兼容用函数CMEX、FMEX实现7.强大的联机检索帮助功能可随时检索matlab函数可随时查询matlab函数的使用方法(四)(四)MATLAB语言系统的组成语言系统的组成MTALAB系统由五个主要部分组成系统由五个主要部分组成(1)MATALB语言体系语言体系 高层次的矩阵数组语言高层次的矩阵数组语言 具有条件控制、函数调用、数据结构、输入输出、面具有条
10、件控制、函数调用、数据结构、输入输出、面向对象等程序语言特性。向对象等程序语言特性。(2)MATLAB工作环境工作环境 包括管理工作空间中的变量数据输入输出的方式和方法,包括管理工作空间中的变量数据输入输出的方式和方法,以及开发、调试、管理以及开发、调试、管理M文件的各种工具。文件的各种工具。(3)图形句相系统图形句相系统 这是这是MATLAB图形系统的基础,包括图形系统的基础,包括完成完成2D和和3D数据图示、图像处理、动画生成、图形显示等数据图示、图像处理、动画生成、图形显示等功能的高层功能的高层MATLAB命令,以及开发命令,以及开发GUI应用程序的各种工应用程序的各种工具。具。(4)M
11、ATLAB数学函数库数学函数库 这是对这是对MATLAB使用使用的各种数学算法的总称包括各种初等函数的的各种数学算法的总称包括各种初等函数的算法,也包括矩阵运算、矩阵分析等高层次数算法,也包括矩阵运算、矩阵分析等高层次数学算法。学算法。(5)MATLAB应用程序接口应用程序接口(API)这是这是MATLAB为用户提供的为用户提供的一个函数库,使得用户能够在一个函数库,使得用户能够在MATLAB环境中使用环境中使用c程序或程序或FORTRAN程序,包括从程序,包括从MATLAB中调用于程序中调用于程序(动态链接动态链接),读写,读写MAT文件的功能。文件的功能。MATLAB是一个集数值计算、图形
12、管理、程序开发是一个集数值计算、图形管理、程序开发为一体的环境。为一体的环境。加上加上MATLAB更强的功能扩展能力,更强的功能扩展能力,与它的主系统一起,构成一个功能更加强大的系统与它的主系统一起,构成一个功能更加强大的系统(五)(五)MATLAB语言的应用语言的应用在欧美大学里,诸如应用代数、数理统计、自动控制、数字信号处理、模拟与数字通信、时间序列分析、动态系统仿真等课程的教科书都把MATLAB作为内容。这几乎成了九十年代教科书与旧版书籍的区别性标志。MATLAB成为攻读学位的大学生、硕士生、博士生必须掌握的基本工具。在国际学术界,MATLAB已经被确认为准确、可靠的科学计算标准软件。在
13、许多国际一流学术刊物上,(尤其是信息科学刊物),都可以看到MATLAB的应用。在设计研究单位和工业部门,MATLAB被认作进行高效研究、开发的首选软件工具。如美国National Instruments公司信号测量、分析软件LabVIEW,Cadence公司信号和通信分析设计软件SPW等,或者直接建筑在MATLAB之上,或者以MATLAB为主要支撑。又如HP公司的VXI硬件,TM公司的DSP等等接受MATLAB的支持。(六)(六)matlab界面介绍界面介绍Matlab 常用的交互界面命令窗口(command window)历史命令窗口(command history)当前目录窗口(curre
14、nt directory)工作空间浏览器(workspace browser)开始按钮(start)1.命令窗口(command window)Matlab的主要操作界面,大部分操作命令和结果在此进行菜单栏Matlab7.0版比6.5版增加了debug(编译m文件)和desktop(界面置放模式)减少了view命令提示符 显示方式 字体、大小、颜色设置 files/preferences命令窗口常用控制指令也可以利用菜单命令实现例如:dir d:MyProg%显示d:MyP rog目录下的文件清单edit d:MyProgexm013_9.m%打开编辑器编辑exm013_9.mwhich ex
15、m013_9.m%指出exm013_9.m所在的目录指 令含 义指 令含 义cd设置当前工作目录exit/quit退出MATLABclf清除图形窗open打开文件clc清除指令窗中显示的内容md创建目录clear清除内存变量more使显示内容分页显示dir列出指定目录的文件清单type显示M文件的内容edit打开M文件编辑器which指出文件所在目录2.历史命令窗口(command history)记录用户在Matlab命令窗口中输入的所有的命令包括每次启动Matlab的时间和每次启动所有的命令行对历史命令的编辑(复制/运行/创建m文件/快捷方式/profile code)利用命令来创建“日志
16、”来记录历史命令diary例:diary first_diary%输入复数z1=10+5i;z2=5+9i;z3=6;a=z1,z2,z3a=10.0000+5.0000i 5.0000+9.0000i 6.0000 diary offWork 目录下/所有文件中打开first diary(默认路径,可修改)3.当前目录窗口(current directory)当前目录浏览器管理Matlab中大量的函数和数据库包括菜单栏、当前目录设计区,工具菜单和文件详细菜单对文件详细菜单区域中文件可以方便地进行编辑或运行如何设置当前目录呢?启动Matlab时,默认路径为 MATLAB701workWindo
17、ws 创建目录,可以自动添加 Files/set path 利用path命令来查看matlab的路径信息4.工作空间浏览器(workspace browser)保存内存变量,从而可以方便地对其进行查阅和编辑等等(双击浏览数组编辑器或右键其他编辑)可在命令窗口利用操作命令在查阅和删除内存变量 内存变量的操作命令1.内存变量的查阅、删除1)who,whos指令查询内存变量who指令获取当前所有内存变量的名称列表。whos指令获取详细的内存变量列表,包含变量类型、大小等信息。2)clear 指令删除内存变量clear指令清除所有内存变量clear v1 v2清除内存变量v1 v2,被删变量间用空格分
18、隔3)打开工作空间浏览器(WorkSpace),可以看到所有内存变量的详细说明,和whos指令效果相同。并且可以通过右键点击变量引出现场菜单,对该变量进行编辑、删除、重命名、保存、绘图等操作。数据文件的存取1)利用指令save、load实现数据文件(*.mat)的存取。save/load filename%保存/打开文件filename.matsave/load filename v1 v2%保存/打开变量v1 v22)打开工作空间浏览器(WorkSpace),可以在右键现场菜单中选择Save Workspace as保存所有内存变量,或Save Selection as保存指定变量。例 a=
19、1 2 3;4 5 6;7 8 9;%输入一个3*3数组a b=This is a test;%输入一个字符串数组 c=3;d=0.2;whoYour variables are:a b c d whos Name Size Bytes Class a 3x3 72 double array b 1x14 28 char array c 1x1 8 double array d 1x1 8 double arrayGrand total is 25 elements using 116 bytes clear c save filename a b clear load filename wh
20、oYour variables are:a b 数组编辑器MATLAB提供专门的数组编辑器来编辑数组(双击或右键)用户可以在数组编辑器中直接编辑该变量5.开始按钮(start)MATLAB 主窗口左下角有一个Start按钮,单击该按钮会弹出一个菜单选择其中的命令可以执行MATLAB产品的各种工具,并且可以查阅MATLAB包含的各种资源。(七)(七)MATLAB7.0的帮助系统的帮助系统纯文本帮助 在MATLAB中,所有执行命令或者函数的M源文件都有详细的注释,用纯文本的形式来表示的,一般包括函数的条用格式或输入参数、输出结果的含义等等7.2联机查询功能两种方式:helpwin指令 help帮助
21、命令7.1 基本帮助指令 在工作窗口输入:helpwin 显示帮助窗口;helpdesk 显示html格式的帮助内容 demo 显示Matlab Demo Window的窗口,选择感兴趣的内容进行演示2.lookfor指令 help需要事先知道函数准确的名字,如果不能确定时,可用lookfor+完整或不完整的关键词,进行搜索如:lookfor fft ;检索出各种与傅立叶有关的函数help帮助命令:1.Help 指令+待查询的函数 命令窗口输入:help exp 得到指数函数命令的详 细信息 help sum 加法函数 二、MATLAB的数值运算功能(一)基本概念1.变 量变量命名规则:变量名
22、、函数名由英文字母、数字、下划线构成。变量名、函数名区分字母大小写。A1、a1代表不同含义。变量名第一个字符必须是英文字母。变量名不得包含空格及、,等标点符号,但可以包含下划线。例如:m_array001合法,1_a d,minute不合法。MATLAB命令通常是用小写字母书写。MATLAB中变量使用之前,不需要指定变量的数据类型,也不必事先声明变量。2.MATLAB默认的预定义变量预定义变量预定义变量在在MATLAB启动时由系统自动启动时由系统自动生成。用户在编写指令和程序时,应尽量避免生成。用户在编写指令和程序时,应尽量避免使用下列预定义变量,以免混淆。使用下列预定义变量,以免混淆。预定义
23、变量含 义预定义变量含 义ans 计算结果的缺省变量名NaN 或 nan 不定值,如 0/0eps 最小的机器数nargin 函数输入参数数目Inf 或 inf 无穷大,如 1/0nargout 函数输出参数数目i 或 j 虚单元 i=j=(-1)1/2realmax 最大正实数pi 圆周率 realmin 最小正实数3.运算符和表达式MATLAB表达式的规则与一般手写算式基本相同。a)表达式由变量名、运算符和函数名组成。b)表达式按优先级自左向右运算,括号可改变优先级顺序。c)优先级顺序由高到底为:指数运算、乘除运算、加减运算。d)表达式中赋值符为“=”。可直接在命令窗内输入表达式进行计算例
24、求12+2(7-4)32的运算结果。1)键盘在指令窗输入下面一行指令,然后按下Enter键。(12+2*(7-4)/322)等待指令执行完毕,MATLAB指令窗显示运算结果。ans=(默认的变量名 记录计算结果)24.复数和复数矩阵MATLABMATLAB可以直接输入复数可以直接输入复数 a+bi a+bi。MATLABMATLAB的矩阵元素可的矩阵元素可以是复数或复数表达式。以是复数或复数表达式。例例1-51-5常用复数转换指令常用复数转换指令 realreal、imagimag、absabs、angleangle z1=3+4i%输入一个复数z1z1=3.0000+4.0000i a=re
25、al(z1)%求复数z1的实部a=3 b=imag(z1)%求复数z1的虚部b=4 r=abs(z1)%求复数z1的模r=5 theta=angle(z1)%求复数z1的相角theta=0.9273 5.指令行中常用的标点符号标点在MATLAB指令中的作用极其重要。为了保证指令的正确执行,标点符号必须在英文状态下输入名 称标点作 用空格分隔输入量;分隔数组元素逗号,作为要显示结果的指令的结尾;分隔输入量;分隔数组元素黑点.小数点分号;命令结束;作为不显示结果的指令的结尾;分隔数组中的行冒号:用作生成一维数组;用作下标时表示该维上的所有元素注释号%其后内容为注释内容单引号 其内容为字符串圆括号(
26、)用作数组标识;表示函数输入向量列表时用方括号 输入数组时用;表示函数输出向量列表时用花括号 用作元胞数组标识下连符_用在变量、函数和文件名中续行号将长指令行分成两行输入,保持两行的逻辑连续。例 在MATLAB中输入矩阵 a=2,3,4;3,5,7;8,9,10%显示结果a=2 3 4 3 5 7 8 9 10 a=2,3,4;3,5,7;8,9,10;%不显示结果 矩阵 ,变量间隔;行间隔/显示不显示只要是赋过值的变量,不管是否在屏幕上显示过,都存储在工作空间中,以后可随时显示或调用。变量名尽可能不要重复,否则会覆盖。.续行命令 B=1+25-36+.37-58B=-31%两个数组点乘C=1,2,3.*4,5,6 C=4 10 18%,点乘冒号的作用 用于生成等间隔的向量,默认间隔为1.例如:A=1:3;B=1:0.5:3;用于选出矩阵指定行、列及元素。例如:A=B(i,:)循环语句 例如:for i=1:3