系统仿真MATLAB的控制语句和绘图功能.ppt

上传人:小飞机 文档编号:6597634 上传时间:2023-11-16 格式:PPT 页数:48 大小:276.50KB
返回 下载 相关 举报
系统仿真MATLAB的控制语句和绘图功能.ppt_第1页
第1页 / 共48页
系统仿真MATLAB的控制语句和绘图功能.ppt_第2页
第2页 / 共48页
系统仿真MATLAB的控制语句和绘图功能.ppt_第3页
第3页 / 共48页
系统仿真MATLAB的控制语句和绘图功能.ppt_第4页
第4页 / 共48页
系统仿真MATLAB的控制语句和绘图功能.ppt_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《系统仿真MATLAB的控制语句和绘图功能.ppt》由会员分享,可在线阅读,更多相关《系统仿真MATLAB的控制语句和绘图功能.ppt(48页珍藏版)》请在三一办公上搜索。

1、1,仅靠一条一条地输入语句,MATLAB难以实现复杂功能,为了实现诸如循环、条件、分支等功能,MATLAB利用了M文件,M文件是由一系列的MATLAB语句组成。,2,MATLAB实际上可以认为是一种解释性语言,用户可以在MATLAB工作环境下一条一条地键入命令,也可以直接键入用MATLAB的语言编写的M文件名,或它们结合起来使用。这样MATLAB软件对此命令或M文件中各条命令进行翻译,然后在MATLAB环境下对它进行处理,最后返回运算结果。所以说MATLAB语言的结构可用下式进行描述:MATLAB语言窗口命令M文件,3,MATLAB提供了丰富的库函数,库函数是根据系统编制好了的、提供用户直接使

2、用的函数。MATLAB中常用的基本数学函数如表1-3所示。除了基本函数外,不同版本的MATLAB还增加了不同的有专门功能的库函数,也称工具箱。例如通讯工具箱、控制系统工具箱和信号处理工具箱等等。对于各种函数的功能和调用方法可使用MATLAB的联机帮肋help来查询,其使用格式为help 函数名,1.2.2 MATLAB的库函数,4,表1-3 MATLAB的基本数学函数,5,1.2.3 MATLAB的磁盘文件,由于MATLAB本身可以被认为是一种高效的语言,所以用它可编写出具有特殊意义的磁盘文件来。这些磁盘文件是由一系列的MATLAB语句组成,它既可能是由一系列窗口命令语句构成的文本文件,又可以

3、是由各种控制语句和说明语句构成的函数文件。由于它们都是由ASCII码构成的,其扩展名均为“.m”,故统称为M文件。,6,由于M文件具有普通的文本格式,因而可以使用系统认可的文本文件编辑器来建立M文件,如dos下的edit,windows的记事本和word等。而一般常用且最为方便的是使用MATLAB提供的M文件编辑/调试器。,M文件的建立与打开,7,1、建立新的M文件 为建立新的M文件,启动MATLAB的M文件编辑/调试器。(1)命令按钮操作。单击MATLAB主窗口工具栏上的New M-File(新建)命令按钮,屏幕上将出现 M文件编辑器窗口。(2)菜单操作。从MATLAB主窗口的File菜单中

4、选择New菜单项,再选择M-file命令,屏幕上将出现M文件编辑器窗口。,8,M文件编辑器,9,2、编写或修改后的M文件的保存 用鼠标左键单击MATLAB 文件编辑器窗口工具栏的“存盘”图标。(1)若是修改后的M文件,则完成了保存。(2)若是新编写的M文件,则弹出对话框,输入文件名后,则完成了保存。,10,3、打开已有的M文件(1)命令按钮操作。单击MATLAB主窗口工具栏上的Open File命令按钮,再从弹出的对话框中选择所需打开的M文件。(2)菜单操作。从MATLAB主窗口的File菜单中选择Open命令,则屏幕出现Open对话框,在Open对话框中选中所需打开的M文件。打开的M文件在M

5、文件编辑器窗口内。可以对它进行编辑修改,编辑完成后,将M文件存盘。,11,M文件的语法类似于C语言,但又有其自身特点。它只是一个简单的ASCII码文本文件,执行程序时逐行解释运行程序,MATLAB是解释性的编程语言。M文件包括文本文件和函数文件。独立的M文件 称文本文件 可调用M文件 称函数文件,M文件,12,1.文本文件 文本文件由一系列的MATLAB语句组成,与在命令窗口逐行执行文件中的所有指令,其结果是一样的。在MATLAB的提示符下直接键入文本文件名,便可自动执行文件中的一系列命令,直至给出最终结果。文本文件在工作空间中运算的变量为全局变量。,13,例1-1 求函数 在x=-4时的值。

6、,解 首先打开M文件编辑器,建立以下文本文件ex1_1.m,并保存。%ex1_1.m%this is an M file for calculaters sqrtx+x3 x1=abs(x);x2=sqrt(x1)+x3;y=x2,14,当文本文件ex1_1.m建立后,在MATLAB命令窗口中输入以下命令:x=-4;ex1_1结果显示:y=-62 这里执行的中间变量x1,x2都被保存下来,这与函数文件是不同的。,15,2.函数文件 函数文件的功能是建立一个函数,且这个函数可以同MATLAB的库函数一样使用,它与文本文件不同,在一般情况下不能单独键入函数文件的文件名来运行一个函数文件,它必须由其

7、它语句来调用,函数文件允许有多个输入参数和多个输出参数值,其基本格式如下:function f1,f2,f3,=fun(x,y,z,)注释说明语句函数体语句其中:x,y,z,是形式输入参数;而f1,f2,f3,是返回的形式输出参数值;fun是函数名。,16,实际上,函数名一般就是这个函数文件的磁盘文件名,注释语句段的内容同样可用help命令显示出来。调用一个函数文件只需直接使用与这个函数一致的格式y1,y2,y3,=fun(a,b,c,)其中:a,b,c,是相应的实际输入参数,而y1,y2,y3,是相应的实际输出参数值。,17,例1-2 求函数在x1=-2,x2=3,x3=1时的值,解 首先建

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

9、是由function开头的,且有函数名和输入形式参数与输出形式参数,若是没有这一行的磁盘文件就是文本文件。,20,输入与输出函数,如果用户想在计算的过程中给计算机输入一个参数,则可以使用input()函数来进行,该函数的调用格式为变量名input(提示信息,选项)这里提示信息可以为一个字符串显示,它用来提示用户输入什么样的数据,input()函数的返回值赋给等式左边的变量名。,21,例如,用户想输入A矩阵,则可以采用下面的命令来完成 A=input(Enter matrix A=);执行该命令时首先给出Enter matrix A=提示信息,然后等待用户从键盘按MATLAB格式输入矩阵,并把此

10、值赋给A。如果在input()函数调用时采用了s选项,则允许用户输入一个字符串,此时需用单引号将所输字符串括起来。,22,MATLAB提供的命令窗口输出函数主要有disp()函数,其调用格式为disp(变量名)其中,变量名既可以为字符串,也可以为变量矩阵。例如s=Hello World结果显示:s=Hello Worlddisp(s)结果显示:Hello World,23,MATLAB提供了较实用的字符串处理及转换的函数,例如int2str()函数就可以方便在将一个整形数据转换成字符串形式,该函数的调用格式为cstr=int2str(n)其中:n为一个整数,而该函数将返回一个相关的字符串cst

11、r。例如:num的数值为num=15,而在输出中还想给出其它说明性附加信息,则可利用下面的语句 num=15;disp(The value of num is,int2str(num),!ok)结果显示:The value of num is 15!ok,24,与int2str()函数的功能及调用方式相似,MATLAB还提供了num2str()函数,可以将给出的实型数据转换成字符串的表达式,最终也可以将该字符串输出出来。例如给绘制的图形赋以数字的标题时可采用下面的命令 c=(70-32)/1.8;title(Room temperature is,num2str(c),degrees C)则会

12、在当前图形上加上题头标注 Room temperature is 21.1111 degrees C,25,数值显示格式,MATLAB可以使用format命令来改变显示格式,其调用格式为format 控制参数其中:控制参数决定显示格式,控制参数如表1-5表示。,26,表1-5 format命令的控制参数,27,小结:文本文件和函数文件的区别(1)文本文件是一串指令的集合,没有输入输出参数;函数文件第一行是由function开头的,且有函数名和输入形式参数与输出形式参数,即函数文件需要输入变量,返回输出变量。(2)文本文件在MATLAB的提示符下直接键入文本文件名;函数文件在一般情况下不能单独键

13、入函数文件名来运行,它必须由其它语句来调用。(3)文本文件在工作空间中运算的变量为全局变量;函数文件中定义的变量为局部变量,它只在函数内有效。,28,1.3 MATLAB的控制语句,MATLAB是一个功能极强的高度集成化程序设计语言,它具备一般程序设计语言的基本语句结构,并且它的功能更强,由它编写出来的程序结构简单,可读性强。和其它高级语言一样,MATLAB也提供了条件转移语句、循环语句等一些常用的控制语句,从而使得MATLAB语言的编程显得十分灵活。,29,1.3.1 循环语句,在实际计算中,经常会遇到许多有规律的重复计算,此时就要根据循环条件对某些语句重复执行。MATLAB中可以使用两种循

14、环语句:for语句和while语句,30,for循环语句,for语句的基本格式为:for 循环变量表达式1:表达式3:表达式2 循环语句组 end其中,循环变量可以取做任何MATLAB变量。首先将循环变量的初值赋成表达式1的值,判断若循环变量的值介于表达式1和表达式2的值之间,则执行循环体中的语句,否则结束循环语句的执行。执行完一次循环体中的语句之后,则会将循环变量自增一个表达式3的值,然后再判断循环变量是否介于表达式1和表达式2之间,如果满足就再执行循环体语句直至不满足为止。这时将结束循环语句的执行,而继续执行后面的语句。如果表达式3的值为1,则可省略表达式3。,31,例1-3 求 的值。解

15、 MABLAB程序如下:%ex1_3.mmysum=0;for i=1:100 mysum=mysum+i;endmysum运行结果显示:mysun=5050,32,while循环语句将循环体中的语句循环执行不定次数。其基本格式为:while 表达式 循环体语句 end其中,表达式一般是由逻辑运算和关系运算组成的,以判断循环的进行和停止。若表达式的值非0(逻辑为真),则执行循环体语句;执行后再判断表达式是否仍然成立,若不成立,则跳出循环,向下继续执行。,While 循环语句,33,例:用while循环语句求1100间整数的和。sum=0;i=1;while i=100 sum=sum+i;i=

16、i+1;end sum 运行结果显示:sum=5050,34,MATLAB提供的循环语句for和while是允许多级嵌套的,而且它们之间也允许相互嵌套,这和C语言等高级程序设计语言是一致的。,35,1.3.2 程序流控制语句,在程序设计语言中,经常会遇到提前终止循环、跳出子程序、显示执行过程等,此时就要用到以下控制程序流命令。1.echo命令:显示其后执行的M文件的指令。一般来说当一个M文件运行时,文件中的命令不在屏幕上显示出来;而利用echo命令可以使M文件在运行时把其中的命令显示在工作空间中,这对于调试、演示等很有用。,36,程序流控制语句,2.break命令:中断for,while循环语

17、句的执行、强行跳出,在嵌套循环结构中,当满足某种条件时,break从最里层循环退出。可防止死循环。(跳一层)3.continue命令:中断for,while循环语句的执行,进行下一次循环判断。(跳一次)4.pause命令:暂停,等待用户响应。可令M文件执行暂停,并在按任一键后继续执行。5.return命令:返回调用它的函数处继续运行。,37,1.3.3 条件转移语句,MATLAB提供的条件转移语句是由if引导的,其基本格式分为以下几种:1、if 条件式 条件块语句组 end其中,条件式一般是由逻辑运算和关系运算组成的。当给出的条件式成立时,则执行该条件块结构中的语句内容,执行完之后继续向下执行

18、,若条件不成立,则跳出条件块而直接向下执行。,38,例1-4:求满足 的最小m值。解:MATLAB程序如下:%ex1_4.mmysum=0;for m=1:1000 mysum=mysum+m;if mysum1000 break;endendm运行结果显示:m=45,39,2、if 表达式 语句1 else 语句2 end其中,表达式一般是由逻辑运算和关系运算式组成的。,40,3、多分支结构 if 表达式1 语句1 elseif 表达式2 语句2 elseif 表达式3 语句3 else 语句n end,41,例:写赋值程序:for i=1:5 x=input(please input x=

19、);if x=1 y=10 elseif x-1&x1 y=0 else y=-10 endend,42,4、switch语句(开关结构)其语句格式为:switch 开关表达式 case 表达式1 语句组1 case 表达式2 语句组2 case 表达式m 语句组m otherwise 语句组m+1 end,当开关表达式的值等于表达式1时,执行语句组1,执行完后跳出,否则执行语句组m+1。在执行过程中,只有一个case命令被执行。当执行完命令后,程序就跳出分支结构,执行end后面的命令。,43,例:t=-pi:0.1:pi;trigname=input(Input trig functions

20、 name:)switch trignamecase sin plot(t,sin(t)case cos plot(t,cos(t)otherwise break%终止,跳出switch语句end,注意,这里使用了break命令,其作用就是中止并跳出上一级的过程。,44,.4 MATLAB的绘图功能,MATLAB被控制界广泛接受的另一个重要原因是,它提供了十分方便的一系列绘图命令。例如,线性坐标、对数坐标、半对数坐标及极坐标等命令,它还允许用户同时打开若干图形窗口,对图形标注文字说明等,它使得图形绘制和处理等复杂工作变得简单得令人难以置信。,45,二维图形,1基本形式 MATLAB最基本的绘图

21、函数为plot()。如果y是一个n 维向量,那么plot(y)绘制一个y元素和y元素排列序号1,2,,n之间关系的线性坐标图。例如y=0 0.48 0.84 1 0.91 0.6 0.14;plot(y)则显示如图1-2所示曲线。,46,如果x和y是两个等长向量,那么 plot(x,y)将绘制一条x和y的之间关系的线性坐标图。例如x=0:0.1:2*pi;y=sin(x);plot(x,y)则显示如图1-3所示曲线。,图1-2 图1-3,47,2多重线型,在同一图形中可以绘制多重线型,基本命令格式为 plot(x1,y1,x2,y2,xn,yn)以上命令可将x1对y1,x2对y2,xn对yn的图形绘制在一个图形中,而且分别采用不同的颜色或线型。例如以下命令可显示如图1-4所示曲线。,48,图1-4,x=0:0.1:2*pi;plot(x,sin(x),x,cos(x),

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号