计算机仿真技术与CAD第1章仿真软件-MATLAB.ppt

上传人:小飞机 文档编号:6606198 上传时间:2023-11-17 格式:PPT 页数:212 大小:556.50KB
返回 下载 相关 举报
计算机仿真技术与CAD第1章仿真软件-MATLAB.ppt_第1页
第1页 / 共212页
计算机仿真技术与CAD第1章仿真软件-MATLAB.ppt_第2页
第2页 / 共212页
计算机仿真技术与CAD第1章仿真软件-MATLAB.ppt_第3页
第3页 / 共212页
计算机仿真技术与CAD第1章仿真软件-MATLAB.ppt_第4页
第4页 / 共212页
计算机仿真技术与CAD第1章仿真软件-MATLAB.ppt_第5页
第5页 / 共212页
点击查看更多>>
资源描述

《计算机仿真技术与CAD第1章仿真软件-MATLAB.ppt》由会员分享,可在线阅读,更多相关《计算机仿真技术与CAD第1章仿真软件-MATLAB.ppt(212页珍藏版)》请在三一办公上搜索。

1、1,本章内容 MATLAB的基本数学函数和常用命令的使用;MATLAB的M文件的建立与使用;MATLAB的基本输入/输出函数及其应用;MATLAB的外部命令调用方法;MATLAB的条件转移语句、循环语句等常用控制语句的使用;MATLAB的基本绘图、字符添加、图形控制和图形修饰命令;MATLAB的基本数值运算方法;MATLAB的基本符号运算方法;MATLAB的文件I/O;MATLAB图形用户界面(GUI)的简单设计;MATLAB编译器的基本应用方法。,第1章 仿真软件MATLAB,2,1.1 MATLAB的功能特点 1.1.1 MATLAB简介,在科学研究和工程应用中,为了克服一般语言对大量的数

2、学运算,尤其当涉及矩阵运算时,编程难、调试麻烦等困难,美国MATLAB软件开发公司于1967年构思并开发了MATLAB(MATRIX ABoratory,即矩阵实验室),经过不断更新和扩充,该公司于1992年推出了具有划时代意义的MATLAB4.0版本,并于1993年推出了其微机版。到2011年为止先后推出了MATLAB4.x、MATLAB 5.x、MATLAB 6.x和MATLAB 7.x版,使之应用范围越来越广。从MATLAB 7.x版开始,MathWorks公司每年发布两个版本的MATLAB。,3,用MATLAB编程运算与人进行科学计算的思路和表达方式完全一致,所以使用MATLAB进行数

3、学运算就象在草稿纸上演算数学题一样方便。万能的、科学的数学运算“演算纸”万能的计算器,4,MATLAB大大降低了对使用者的数学基础和计算机语言知识的要求,既使用户不懂C或FORTRAN这样的程序设计语言,也可使用MATLAB轻易的再现C或FORTRAN语言几乎全部的功能,设计出功能强大、界面优美、稳定可靠的高质量程序来,而且编程效率和计算效率极高。,5,尽管MATLAB开始并不是为控制理论与系统的设计者们编写的,但以它“语言”化的数值计算、强大的矩阵处理及绘图功能、灵活的可扩充性和产业化的开发思路很快就为自动控制界研究人员所瞩目。目前,在自动控制、图像处理、语言处理、信号分析、振动理论、优化设

4、计、时序分析和系统建模等领域。,6,由著名专家与学者以MATLAB为基础开发的实用工具箱极大地丰富了MATLAB的内容,较为常见的MATLAB工具箱主要有:,航空宇宙模块集(Aerospace Blockset);通信模块集(Communications Blockset);控制系统工具箱(Control Systems Toolbox);数据获得工具箱(Data Acquisition Toolbox);模糊逻辑工具箱(Fuzzy Logic Toolbox);滤波器设计工具箱(Filter Design Toolbox);定点运算模块集(Fixed-Point Blockset);遗传算法

5、与直接搜索工具箱(Genetic Algorithm and Direct Search Toolbox);,7,高阶谱分析工具箱(High-Order Spectral Analysis Toolbox);图像处理工具箱(Image Processing Toolbox);映射工具箱(Mapping Toolbox);模型预测控制工具箱(Model Predictive Control Toolbox);神经网络工具箱(Neural Network Toolbox);优化工具箱(Optimization Toolbox);偏微分方程工具箱(Partial Differential Equat

6、ion Toolbox);鲁棒控制工具箱(Robust Control Toolbox);信号处理工具箱(Signal Processing Toolbox);统计学工具箱(Statistics Toolbox);系统辨识工具箱(System Identification Toolbox);样条工具箱(Spline Toolbox);小波分析工具箱(Wavelet Toolbox)。,8,模型输入与仿真环境Simulink更使MATLAB为控制系统的仿真与CAD中的应用打开了崭新的局面,并使得MATLAB目前已经成为国际上最流行的控制系统计算机辅助设计的软件工具。MATLAB不仅流行于控制界,

7、在生物医学工程、语言处理、图像信号处理、雷达工程、信号分析、计算机技术等各行各业中都有极广泛的应用。,9,严格地说,MATLAB并不是一种计算机语言,它仅仅是一种高级的科学分析与计算软件。因为,用它编写出来的程序并不能脱离MATLAB环境而执行,但从其功能上讲,MATLAB已经完全具备了计算机语言的结构与性能,所以我们这里将其简称为“MATLAB语言”。,10,目前MATLAB的最新版本为MATLAB 7.13(R2011b),它包括MATLAB 和 Simulink 的新功能、新产品以及其他产品的更新和缺陷修复程序。由于最新版的新增功能对于本书涉及的内容没有太大影响,再加上新版本安装程序大、

8、启动和运行速度慢。故本书仍以目前最为流行的经典版本MATLAB 7.5(R2007b)为基础来进行叙述,但排除了过渡性很强的内容,使得本书的内容对更高版本的环境仍可完全适用,同时也兼顾了当前仍在较低配置计算机上使用MATLAB 6.5版本的用户。,11,需要注意,对于使用Windows XP系统的用户需要安装MATLAB 6.5及以上的版本,使用Windows 7系统的用户必须安装MATLAB 7.6(R2008a)及以上的版本,否则不能正常使用或安装MATLAB。,12,1.1.2 MATLAB操作界面,MATLAB启动后将出现如图1-1所示的操作界面。,由图1-1可知,MATLAB的操作界

9、面由功能菜单、工具栏、工作窗口和开始按钮等组成。,13,1.MATLAB的工作窗口 在默认状态下,MATLAB的工作窗口由命令窗口(Command Window)、历史命令(Command History)窗口、工作空间(Wotkspace)浏览器窗口和当前工作目录(Current Directory)窗口等组成。在MATLAB命令窗口中的“”标志为MATLAB的命令提示符,“|”标志为输入字符提示符。如果用户是第一次使用MATLAB,则建议首先在命令行中键入demo命令,它将启动MATLAB的演示程序,用户可以在这些演示程序中领略到MATLAB所提供的强大的运算和绘图功能。,14,2.开始按

10、钮 开始按钮(Start)位于MATLAB操作界面的左下角,单击这个按钮后,会出现MATLAB的操作菜单。这个菜单上半部分的选项包含MATLAB的各种交互操作界面,下半部分的选项的主要功能是窗口设置、访问MATLAB公司的网页和查看帮助文件等。3.功能菜单 为了更好地利用MATLAB,在其操作界面中设置了以下多个功能菜单。,15,*File 文件操作菜单 New 新建M文件、图形、模型和图形用户界面 Open 打开.m,.fig,.mat,.mdl,.cdr等文件 Close Command Window 关闭命令窗口 Import Data 从其他文件导入数据 Save Workspace

11、As 保存工作空间数据到相应的路径文件中窗口 Set Path 设置工作路径 Preferences 设置命令窗口的属性 Page Setup 页面设置 Print 设置打印机属性 Print Selection 选择打印 Exit MATLAB 退出MATLAB操作界面,16,*Edit 编辑菜单 Undo 撤消上一步操作 Redo 重新执行上一步操作 Cut 剪切 Copy 复制 Paste 粘贴 Paste Special 粘贴特定内容 Select All 全部选定 Delete 删除所选对象 Find 查找所需对象 Find Files 查找所需文件 Clear Command Wi

12、ndow 清除命令窗口的内容 Clear Command History 清除历史窗口的内容 Clear Workspace 清除工作区的内容,17,*Debug 调试菜单 Open M-Files when Debugging 调试时打开M文件 Step 单步调试 Step In 单步调试进入子函数 Step Out 单步调试跳出子函数 Continue 连续执行到下一断点 Clear Breakpoints in All Files 清除所有文件中的断点 Stop if Errors/Warnings 出错或报警时停止运行 Exit Debug Mode 退出调试模式,18,*Deskto

13、p 桌面菜单 Unlock Command Window 命令窗口设为当前全屏活动窗口 Desktop Layout 桌面设计 Save Layout 保存桌面设计 Organize Layout 组织桌面设计 Command Window 显示命令窗口 Command History 显示历史窗口 Current Directory 显示当前工作目录 Workspace 显示工作空间 Help 帮助窗口 Profiler 轮廓图窗口 Toolbar 显示/隐藏工具栏 Shortcuts Toolbar 显示/隐藏快捷工具栏 Titles 显示/隐藏标题,19,*Window 窗口菜单 Clo

14、se All Documents 关闭所有文档 Command Window 选定命令窗口为当前活动窗口 Command History 选定历史窗口为当前活动窗口 Current Directory 选定当前工作目录为当前活动窗口 Workspace 选定工作空间为当前活动窗口,20,4.工具栏 MATLAB操作界面工具栏中的工具“”分别用来建立M文件编辑窗口和打开编辑文件窗口;工具“”对应的功能与Windows操作系统类似;工具“”分别用来快捷启动Simulink库浏览窗口、GUIDE模版窗口和轮廓图窗口;工具“”分别用来快捷设置当前目录和返回到当前目录的父目录。,21,1.2.1 MAT

15、LAB语言的结构 MATLAB命令窗口就是 MATLAB语言的工作空间,因为MATLAB的各种功能的执行必须在此窗口下才能实现,在这种环境下输入的MATLAB语句称为“窗口命令”。所谓窗口命令,就是在上述环境下输入的MATLAB语句,并直接执行它们完成相应的运算、绘图等。,1.2 MATLAB的基本操作,22,其中 等号右边的表达式可由操作符或其它字符、函数和变量名组成,它可以是MATLAB允许的数学或矩阵运算,也可以包含MATLAB下的函数调用;等号左边的变量名为MATLAB语句右边表达式的返回值语句所赋值的变量的名字。在调用函数时,MATLAB允许一次返回多个结果,这时等号左边的变量名需用

16、 括起来,且各个变量名之间用逗号分隔开,如果左边的变量名缺省时返回值自动赋给ans。,MATLAB语句的一般形式为 变量名表达式,23,表1-1 MATLAB中的算术运算符,MATLAB中使用的算术运算符如表1-1所示。对于矩阵来说,这里左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。对于标量,两种除法运算的结果相同,如1/4和41有相同的值0.25。常用的十进制符号如小数点、负号等,在MATLAB中也可以同样使用,表示10的幂次要用符号e或E,如:3、-99、0.0001、1.6e-20、6.2e23。,24,在MATLAB中变量名必须以字母开头,之后可以是任意字母、数字或者下划线(不能

17、超过19个字符),但变量中不能含有标点符号。变量名区分字母的大小写,同一名字的大写与小写被视为两个不同的变量。一般说来,在MATLAB下变量名可以为任意字符串,但MATLAB保留了一些特殊的字符串如表1-2所示。,25,表1-2 MATLAB中的特殊变量,26,MATLAB命令语句能即时执行,它不是输入完全部MATLAB命令语句经过编译、连接形成可执行文件后才开始执行,而是每输入完一条命令,MATLAB就立即对其处理,并得出中间结果,完成了MATLAB所有命令语句的输入,也就完成了它的执行,直接便可得到最终结果。从这一点来说,MATLAB清晰地体现了类似“演算纸”的功能。例如a=5;b=6;c

18、=a*b,d=c+2,其中第3,4条命令的执行结果分别显示如下:c=30 d=32,27,MATLAB语句既可由分号结束,也可由逗号或换行号结束,但它们的含义是不同的。如果用分号“;”结束,则说明除了这一条命令外还有下一条命令等待输入,MATLAB这时将不立即显示运行的中间结果,而等待下一条命令的输入,如以上前两条命令;如果以逗号“,”或回车结束,则将把左边返回的内容全部显示出来,如以上后两条命令。当然在任何时候也可输入相应的变量名来查看其内容。如a结果显示:a=5,28,在MATLAB中,几条语句也可以出现在同一行中,只要用分号或逗号将它们分割。例如a=5;b=6;c=a*b,d=c+2这时

19、可得与上面相同的结果。,29,MATLAB工作空间中的变量在退出MATLAB时会丢失,如果在退出MATLAB前想将工作空间中的变量保存到文件中,则可以调用save命令来完成,该命令的调用格式为save 文件名 变量列表 其它选项 注意 这一命令中不能使用逗号,不同的元素之间只能用空格来分隔。,30,例如,想把工作空间中的a,b,c变量存到mydat.mat文件中去,则可用下面的命令来实现。save mydat a b c 这里将自动地使用文件扩展名mat。如果想将整个工作空间中所有的变量全部存入该文件,则应采用下面的命令。save mydat,31,当然这里的mydat也可省略,这时将工作空间

20、中的所有变量自动地存入到文件matlab.mat中了。应该指出的是,这样存储的文件均是按照二进制的形式进行的,所以得出的文件往往是不可读的,如果想按照ASCII码的格式来存储数据,则可以在命令后面加上一个控制参数-ascii,该选项将变量以单精度的ASCII码形式存入文件中去,如果想获得高精度的数据。则可使用控制参数:-ascii-double。,32,MATLAB提供的load命令可以从文件中把变量调出并重新装入到MATLAB的工作空间中去,该函数的调用格式与save命令同。当然工作空间中变量的保存和调出也可利用菜单项中的File|Save Workspace As 和File|Open命令

21、来完成。,33,如果想查看目前的工作空间中都有哪些变量名,则可以使用who命令来完成。例如当MATLAB的工作空间中有a,b,c,d四个变量名时,使用who 命令将得出如下的结果。who,your variable are:a b c d 想进一步了解这些变量的具体细节,则可以使用whos命令来查看。,34,了解了当前工作空间中的现有变量名之后,则可以使用clear命令来删除其中一些不再使用的变量名,这样可使得整个工作空间更简洁,节省一部分内存,例如想删除工作空间中的a,b两个变量,则可以使用下面的命令clear a b 如果想删除整个工作空间中所有的变量,则可以使用以下命令clear MAT

22、LAB可以使用上下光标键来前后查看已经键入的命令。,35,但仅靠一条一条地输入语句,MATLAB难以实现复杂功能,为了实现诸如循环、条件、分支等功能,MATLAB利用了m文件,m文件是由一系列的MATLAB语句组成。,36,MATLAB实际上可以认为是一种解释性语言,用户可以在MATLAB工作环境下一条一条地键入命令,也可以直接键入用MATLAB的语言编写的m文件名,或它们结合起来使用,这样MATLAB软件对此命令或m文件中各条命令进行翻译,然后在MATLAB环境下对它进行处理,最后返回运算结果。所以说MATLAB语言的结构可用下式进行描述 MATLAB语言窗口命令m文件,37,1.2.2 M

23、ATLAB的磁盘文件,由于MATLAB本身可以被认为是一高效的语言,所以用它可编写出具有特殊意义的磁盘文件来,这些磁盘文件是由一系列的MATLAB语句组成,它既可能是一系列窗口命令语句,又可以是由各种控制语句和说明语句构成的函数文件。由于它们都是由ASCII码构成的,其扩展名均为“.m”,故统称为m文件。,38,1.文本文件 文本文件(简称为MATLAB的程序)是一系列的MATLAB语句组成,它类似于DOS下的批处理文件,在MATLAB的提示符下直接键入文本文件名,便可自动执行文件中的一系列命令,直至给出最终结果。文本文件在工作空间中运算的变量为全局变量。,39,例1-1 求函数在x1=-2,

24、x2=3,x3=1时的值。,解 首先在MATLAB的命令窗口中,利用菜单命令FileNewM-File,打开M文件编辑器,然后在编辑器中根据例中所给函数编写以下文本文件,并以ex1_1_1为文件名进行保存(后缀.m自动追加)。,%ex1_1_1.m x1=-2;x2=3;x3=1;y1=3*x1.2+x2+x3y2=3*x1.2-x2-x3,40,当以上文本文件ex1_1_1.m建立后,在MATLAB 命令窗口中输入ex1_1_1执行结果显示:y1=16y2=8,41,由于文本文件中的变量为全局变量,故以上变量x1,x2,x3的值,也可在文本文件外先给定,此时的文本文件为%ex1_1_2.m

25、y1=3*x1.2+x2+x3 y2=3*x1.2-x2-x3 当以上文本文件ex1_1_2.m建立后,利用以下命令,同样可以得到以上结果。x1=-2;x2=3;x3=1;ex1_1_2 以上两种方式下,文本文件中变量的值都被保存下来,这与下面的函数文件是不同的。,42,2.函数文件 函数文件的功能是建立一个函数,且这个函数可以同MATLAB的库函数一样使用,它与文本文件不同,在一般情况下不能单独键入函数文件的文件名来运行一个函数文件,它必须由其它语句来调用,函数文件允许有多个输入参数和多个输出参数值,其基本格式如下function f1,f2,f3,=fun(x,y,z,)注释说明语句 函数

26、体语句其中 x,y,z,是形式输入参数;而f1,f2,f3,是返回的形式输出参数值;fun是函数名。,43,实际上,函数名一般就是这个函数文件的磁盘文件名,注释语句段的内容同样可用help命令显示出来。调用一个函数文件只需直接使用与这个 函数一致的格式y1,y2,y3,=fun(i,j,k,)其中 i,j,k,是相应的实际输入参数,而y1,y2,y3,是相应的实际输出参数值。,44,例1-2 求函数在x1=-2,x2=3,x3=1时的值,解 由于函数文件的建立与文本文件完全一样,故应首先根据例中所给函数在MATLAB的M文件编辑器下,建立以下函数文件ex1_2.m%ex1_2.m functi

27、on b1,b2=ex1_2(a1,a2,a3)b1=3*a1.2+a2+a3;b2=3*a1.2-a2-a3;,45,当以上函数文件ex1_2.m建立后,在MATLAB命令窗口中输入以下命令x1=-2;x2=3;x3=1;y1,y2=ex1_2(x1,x2,x3)结果显示:y1=16y2=8,46,函数文件中定义的变量为局部变量,也就是说它只在函数内有效。即在该函数返回后,这些变量会自动在MATLAB工作空间中清除掉,这与文本文件是不同的,但可通过命令 global 变量来定义一个全局变量。函数文件与文本文件另一个区别在于其第一行是由function开头的,且有函数名和输入形式参数与输出形式

28、参数,若是没有这一行的磁盘文件就是文本文件。,47,由于m文件具有普通的文本格式,因而可以用任何编辑程序建立和编辑,但一般最常用、而且最为方便地是使用MATLAB命令窗口的File|New或File|Open菜单项对m文件进行建立和编辑。,48,1.2.3 库函数和数值显示格式(1)库函数 MATLAB提供了丰富的库函数,库函数是根据系统编制好了的,提供用户直接使用的函数,MATLAB中常用的基本数学函数,如表1-3所示。除了基本函数外,不同版本的MATLAB还增加了不同的有专门功能的库函数,也称工具箱。例如通讯工具箱、控制系统工具箱和信号处理工具箱等等。对于各种函数的功能和调用方法可使用MA

29、TLAB的联机帮肋help来查询,其使用格式为help 函数名,49,表1-3 MATLAB的基本函数,50,2.数值显示格式,MATLAB可以使用format命令来改变显示格式,其调用格式为format 控制参数其中 控制参数决定显示格式,控制参数如表1-4表示。除format命令外,还可由MATLAB命令窗口的Options|Numeric Format菜单项来设置显示形式。,51,表1-4 format命令的控制参数,52,1.2.4 基本输入与输出函数,如果用户想在计算的过程中给计算机输入一个参数,则可以使用input()函数来进行,该函数的调用格式为 变量名input(提示信息,选项

30、)这里提示信息可以为一个字符串显示,它用来提示用户输入什么样的数据,input()函数的返回值赋给等式左边的变量名。,53,例如,用户想输入x的值,则可以采用下面的命令来完成x=input(Enter matrix x=);执行该命令时首先给出Enter matrixA=提示信息,然后等待用户从键盘按MATLAB格式输入值,并把此值赋给x。如果在input()函数调用时采用了s选项,则允许用户输入一个字符串,此时需用单引号将所输字符串括住。,54,MATLAB提供的命令窗口输出函数主要有disp()函数,其调用格式为 disp(变量名)其中变量名既可以为字符串,也可以为变量矩阵。例如s=Hel

31、lo World,s=Hello World,disp(s),Hello World,55,MATLAB提供了较实用的字符串处理及转换的函数,例如int2str()函数就可以方便在将一个整形数据转换成字符串形式,该函数的调用格式为cstr=int2str(n)其中 n为一个整数,而该函数将返回一个相关的字符串cstr。例如 num的数值为num=15,而在输出中还想给出其它说明性附加信息,则可利用下面的语句disp(The value of num is,int2str(num),!ok),这样可得 The value of num is 15!ok,56,与int2str()函数的功能及调用

32、方式相似,MATLAB还提供了num2str()函数,可以将给出的实型数据转换成字符串的表达式,最终也可以将该字符串输出出来。例如给绘制的图形赋以数字的标题时可采用下面的命令c=(70-32)/1.8;title(Room temperature is,num2str(c),degrees C),则会在当前图形上加上题头标注 Room temperature is 21.1111 degrees C,57,1.2.5 外部程序的调用,MATLAB允许在其命令窗口中调用可执行文件(.exe),其调用方法是在MATLAB提示符下键入惊叹号!后面直接跟该可执行文件即可。MATLAB也允许采用这样的方

33、式来直接使用DOS命令,如磁盘复制命令copy可以由!copy来直接使用,而文件列表命令dir可以由!dir来调用。事实上,为了使用户提供更大的方便,MATLAB已经把一些常用的DOS命令做成了相应的MATLAB命令,表1-5列出了MATLAB中提供的一些文件管理命令。,58,表1-5 文件管理命令,59,1.3 MATLAB的控制语句,MATLAB是一个功能极强的高度集成化程序设计语言,它具备一般程序设计语言的基本语句结构,并且它的功能更强,由它编写出来的程序结构简单,可读性强。和其它高级语言一样,MATLAB也提供了条件转移语句、循环语句等一些常用的控制语句,从而使得MATLAB语言的编程

34、显得十分灵活。,60,1.3.1 循环语句,MATLAB中可以使用两种循环语句:for语句和while语句。1.for语句的基本格式为for 循环变量表达式1:表达式3:表达式2 循环语句组 end,61,例 MABLAB程序 ex1_3_1.m运行结果mysun=5050,62,2while语句的基本结构为 while(条件式)循环体条件组 end 其执行方式为,若条件式中的条件成立,则执行循环体的内容,执行后再判断表达式是否仍然成立,如果表达式不成立,则跳出循环,向下继续执行。,63,例如对于上面的例子,如果改用while循环语句,则可以写出下面的程序%ex1_3_2.m sum=0;i=

35、1;while(i=100)sum=sum+i;i=i+1;end MATLAB提供的循环语句for和while是允许多级嵌套的,而且它们之间也允许相互嵌套,这和C语言等高级程序设计语言是一致的。,64,1.3.2 程序流控制语句,在程序设计语言中,经常会遇到提前终止循环、跳出子程序、显示执行过程等,此时就要用到以下控制程序流命令。1.echo命令2.break命令3.continue命令4.pause命令5.return命令,65,1.3.3 条件转移语句,在程序设计中,经常要根据一定的条件来执行不同的命令。当某些条件满足时,只执行其中的某个命令或某些命令。在MATLAB中,条件转移语句包括

36、:if-else-end语句 switch-case-otherwise语句。,66,1.if-else-end语句的基本格式,在MATLAB中,最简单的条件结构:if-end语句命令格式为 if expression statements end当给出的条件式expression成立时,则执行该条件块结构中的语句内容statements,执行完之后继续向下执行,若条件不成立,则跳出条件块而直接向下执行。,67,例1-4 求满足的最小m值.例 MABLAB程序ex1_4.m 运行结果 m=45,68,注意,这里使用了break命令,其作用就是中止上一级的for 语句循环过程,同样while循环

37、语句也在条件转移语句中起着相当重要的作用,因为在MATLAB下没有提供绝对转移的指令。,69,例1-5 如果想对一个变量x自动赋值。当从键盘输入y或Y时(表示是),x自动赋为1值;当从键盘输入n 或N时(表示否),x自动赋为0值;输入其他字符时终止程序。例 MABLAB程序ex1_5.m,70,MATLAB还提供了其他两种条件结构:if-else-end 格式和if-else if-end 格式,这两种格式的调用方法分别为 if expression statements1 else statements2 end,71,和 if expression1 statements1 else if

38、 expression2 statements2 else if expression3 statements3 end,72,2.switch-case-otherwise语句的基本格式 MATLAB中switch-case-otherwise语句的调用格式为 switch switch-expression case case-expression1 statements1;case case-expression2 statements2;case case-expression3 statements3;otherwise statementsn;end,73,switch-case-

39、otherwise语句中,switch-expression给出了开关条件,当有case-expression与之匹配时,就执行其后的语句,如果没有case-expression与之匹配,就执行otherwise后面的语句。在执行过程中,只有一个case命令被执行。当执行完命令后,程序就跳出分支结构,执行end后面的命令。,74,例对于以下MATLAB函数文件myfun.m。function f=myfun(n)switch n case 0 f=1;case 1 f=2;otherwise f=8;end 在MATLAB命令窗口输入以下命令 y=myfun(5)结果显示:y=8,75,.4

40、MATLAB的绘图功能,1.4.1 二维图形1基本形式 MATLAB最基本的绘图函数为plot()。如果y是一个n 维向量,那么plot(y)绘制一个y元素和y元素排列序号1,2,,n之间关系的线性坐标图。如果y是一个nm维矩阵,那么plot(y)将同时绘制出每列元素与其排列序号1,2,n之间关系的m条曲线。,76,例如y=0 0.48 0.84 1 0.91 0.6 0.14;plot(y)则显示如图1-2所示曲线。,77,如果x和y是两个等长向量,那么 plot(x,y)将绘制一条x和y的之间关系的线性坐标图。例如x=0:0.01:2*pi;y=sin(x);plot(x,y)则显示如图1

41、-3所示曲线。,78,2多重线型,在同一图形中可以绘制多重线型,基本命令格式为plot(x1,y1,x2,y2,xn,yn)以上命令可将x1对y1,x2对y2,xn对yn的图形绘制在一个图形中,而且分别采用不同的颜色或线型。例如以下命令可显示如图1-4所示曲线。x=0:0.1:2*pi;plot(x,sin(x),x,cos(x),79,图1-4,80,3.图形修饰及文本标注,MATLAB中对于同一图形中的多重线,不仅可分别定义其线型,而且可分别选择其颜色,带有选项的曲线绘制命令的调用格式为 plot(x1,y1,选项,x2,y2,选项2,xn,yn,选项n)其中 x1,x2,xn为x轴变量,

42、y1,y2,yn为y轴变量,选项如下表1-6所示。,81,表1-6 MATLAB的绘图命令的各种选项,82,上表中的线型和颜色选项可以同时使用,例如 x=0:0.1:2*pi;plot(x,sin(x),-g,x,cos(x),-.r),83,绘制完曲线后,MATLAB还允许用户使用它提供的特殊绘图函数来对屏幕上已有的图形加注释、题头或坐标网格。例如 x=0:0.1:2*pi;y=sin(x);plot(x,y)title(Figure Example)给出题头xlabel(This is x axis)x轴的标注ylabel(This is y axis)y轴的标注grid增加网格legan

43、d(sin(x)加图例,84,除了在标准位置书写标题和轴标志以外,MATLAB还允许在图形窗口的位置利用line()和text()命令画直线或写字符串,它们的调用格式分别为 line(x,y)和 text(x,y,chstr,选项)其中 line()函数在给定的图形窗口上绘制一条由向量x 和y定义的折线,text()函数是在指定的点(x,y)处写一个chstr绘出的字符串,而选项决定x,y坐标的单位,如选项为sc,则x,y表示规范化的窗口相对坐标,其范围为0到1,即左下角坐标为(0,0),而右上角的坐标为(1,1)。,85,用text()命令可以在图形中的任意位置加上文本说明,但是必须知道其位

44、置坐标,而利用另一个函数gtext(),则可以用鼠标来对要添加的文本字符串定位。在MATLAB的工作空间中键入下列命令gtext(sin(x)那么在图中,将会出现一个十字叉,用鼠标拖动它到添加文本的位置,单击鼠标,gtext()命令中的文本字符串sin(x)就自动添加到指定的位置。,86,4.图形控制 MATLAB允许将一个图形窗口分割成nm部分,对每一部分可以用不同的坐标系单独绘制图形,窗口分割命令的调用格式为 subplot(n,m,k)其中 n,m分别表示将这个图形窗口分割的行列数,k表示每一部分的代号,例如想将窗口分割成43个部分,则右下角的代号为 12,MATLAB最多允许99的分割

45、。,87,尽管MATLAB可以自动根据要绘制曲线数据的范围选择合适的坐标系,使得曲线能够尽可能清晰地显示出来,但是,如果觉得自动选择的坐标还不合适时,还可以用手动的方式来选择新的坐标系,调用函数的格式为 axis(xmin,xmax,ymin,ymax)另外,MATLAB还提供了清除图形窗口命令clg、保持当前窗口的图形命令hold、放大和缩小窗口命令zoom等。,88,5.特殊坐标图形 除了基本的绘图命令plot()外,MATLAB还允许绘制极坐标曲线、对数坐标曲线、条形图和阶梯图等,其常用的函数如表1-7所示。,表1-7 特殊二维曲线绘制函数,89,(1)极坐标曲线绘制函数的调用格式为po

46、lar(theta,rho,选项)其中,theta和rho分别为长度相同的角度向量和幅值向量;选项的内容和plot()函数的基本一致。,90,(2)对数和半对数曲线绘制函数的调用格式分别为 semilogx(x,y,选项)绘制横轴为对数标度的图形,选项同plot()semilogy(x,y,选项)绘制纵轴为对数标度的图形,选项同plot()loglog(x,y,选项)绘制两个轴均为对数标度的图形,选项同plot()图1-5 绘图窗口的分割与不同图形绘制 函数semilogx()仅对横坐标进行对数变换,而纵坐标仍保持线性坐标;而semilogy()只对纵坐标进行对数变换,而横坐标仍保持线性坐标;

47、loglog()则分别对横纵坐标都进行对数变换(最终得出全对数坐标的曲线来)。选项的定义与 plot()函数的完全一致。,91,例1-6 利用图形窗口分割方法将下列极坐标方程=cos(/3)+1/9用四种绘图方式画在不同的窗口中。解 MATLAB程序ex1_6.m则显示如图1-5所示曲线。,92,图1-5,93,(3)与线性坐标向量的选取不同,在MATLAB下还给出了一个实用的函数logspace()按对数等间距的分布来产生一个向量,该函数的调用格式为x=logspace(n,m,z)其中 10n和10m分别表示向量的起点和终点,而z表示需要产生向量点个数,当这参数忽略时,z将采用默认值50。

48、,94,6.函数图形 MATLAB还允许调用函数fplot()或ezplot()来直接绘制出函数的图形,其函数的调用格式为fplot(f,a,b,N)和 ezplot(f,g,a,b,N)其中,f,g为函数名,它既可为自定义的任意M函数,也可为基本数学函数;a,b为绘图区间;N为点数,默认时将取N=25。例如绘制如图1-3所示的正弦函数在一个周期内的曲线,可采用如下命令 fplot(sin,0,2*pi),95,利用函数ezplot()可以直接绘制隐函数曲线,隐函数即满足f(x,y)=0方程的x,y之间的关系式。因为很多隐函数无法求出x,y之间的关系,所以无法先定义一个x向量再求出相应的y向量

49、,从而不能采用plot()函数来绘制其曲线。另外,即使能求出x,y之间的显式关系,但不是单值绘制,则绘制起来也是很麻烦的。,96,例1-7 试绘制隐函数 的曲线。解 MATLAB命令如下。ezplot(x2*sin(x+y2)+y2*exp(x+y)+5*cos(x2+y)执行以上MATLAB命令,结果显示如图1-6所示曲线。,97,7.利用鼠标绘制图形 MATLAB允许利用鼠标来点选屏幕点,命令格式为 x,y,button=ginput(n)其中 n 为选择点的数目,返回的x,y 向量分别存储被点中的 n个点的坐标,而button 亦为一个n 维向量,它的各个分量为鼠标键的标号,如butto

50、n(i)=1,则说明第i 次按下的是鼠标左键,而该值为 2 或3则分别对应于中键和右键。,98,例1-8用鼠标左键绘制折线,同时在鼠标左键点中的位置输出一个含有该位置信息的字符串,利用鼠标中键或右键中止绘制。解 MATLAB程序 ex1_8.m,99,1.4.2 三维图形1三维曲线绘制 与二维图形相对应,MATLAB提供了plot3()函数,它允许在一个三维空间内绘制出三维的曲线,该函数的调用格式为 plot3(x,y,z,选项)其中 x,y,z为维数相同的向量,分别存储曲线的三个坐标的值,选项的意义同plot()函数。例利用以下命令,可得到图1-7所示曲线。t=0:pi/50:10*pi;p

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号