第2章MATLAB简介2014.3.1.ppt_第1页
第2章MATLAB简介2014.3.1.ppt_第2页
第2章MATLAB简介2014.3.1.ppt_第3页
第2章MATLAB简介2014.3.1.ppt_第4页
第2章MATLAB简介2014.3.1.ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、,fpl,2.4 绘图简介,MATLAB提供了丰富的绘图功能: help graph2d可得到所有画二维图形的命令 help graph3d可得到所有画三维图形的命令 下面介绍常用的二维图形命令,1)基本绘图指令plot plot(y) 当y为向量时,以y的分量为纵坐标,以元素序号为横坐标,用直线依次连接数据点,绘制曲线。 plot(x,y) 若y和x为同维向量,以x为横坐标,以y为纵坐标绘制连线图。若x是向量,y是行数或列数与x的长度相等的矩阵,则绘制多条不同色彩的连线图,x被作为这些曲线的共同坐标。 plot(x,y1,x,y2,) 以公共的x元素为横坐标,以y1,y2,y3,元素为纵坐标

2、值绘制多条曲线。,Exp2-4-1:以向量y=(1,2,5,4.5,3,6,1)的各个分量为纵坐标,分量序号为横坐标绘制顺序连接线。 解:输入命令 y=1 2 5 4.5 3 6 1; plot(y),Exp2-4-2: %plot绘图命令的使用 clc %清屏命令 clear %清除工作空间中所有变量 %定义时间范围 t=0:pi/20:9*pi; y1=sin(t); y2=cos(t); plot(t,y1,t,y2),Exp2-4-3: %plot绘图命令的使用 close all %关闭打开的所有图形窗口 clc %清屏命令 clear %清除工作空间中所有变量 %定义时间范围 t=

3、0:pi/20:8*pi; y=sin(t); plot(t,y,b:square),% r表示线的颜色为红色,此外 y(黄色)g(绿色)b(蓝色) % w(白色) k(黑色) m (紫色)c(青色) % -.表示线型为点划线,此外 -(实线):(虚线)-(破折线) % *表示标示符号为星号,此外 +(正号) o(圆形字母) % x(交叉字母)square(方形).(点),2) 选择图像 figure(1);figure(2);figure(n) 打开不同的图形窗口,以便绘制不同的图形。,3) grid on:在所画出的图形坐标中加入栅格 grid off:除去图形坐标中的栅格,4) hold

4、 on:把当前图形保持在屏幕上不变,同时 允许在这个坐标内绘制另外一个图形。 hold off:使新图覆盖旧的图形,exp2-4-4:栅格的添加与删除 close all clc clear %定义时间范围 t=0:pi/20:9*pi; figure(1) %选择图像 plot(t,sin(t),r:*) %红色,虚线,星号 grid on %在所画出的图形坐标中添加栅格,注意用在plot之后 figure(2) grid off %删除栅格 plot(t,cos(t),exp2-4-5:hold on和hold off 的使用 close all clc clear %定义时间范围 t=0

5、:pi/20:9*pi; hold on %允许在同一坐标系下绘制不同的图形 plot(t,sin(t),r:*) plot(t,cos(t) plot(t,-cos(t),k) grid on %在所画出的图形坐标中添加栅格,注意用在plot之后 hold off %覆盖旧图 plot(t,-sin(t) grid off %删除栅格,6) 文字标示 text(x,y,字符串) 在图形的指定坐标位置(x,y)处,标示单引号括起来的字符串。 gtext(字符串) 利用鼠标在图形的某一位置标示字符串。 title(字符串) 在所画图形的最上端显示说明该图形标题的字符串。 xlabel(字符串),

6、ylabel(字符串) 设置x,y坐标轴的名称。 输入特殊的文字需要用反斜杠()开头。 legend(字符串1,字符串2,字符串n) 在屏幕上开启一个小视窗,然后依据绘图命令的先后次序,用对应的字符串区分图形上的线。,5) 设定轴的范围 axis(xmin xmax ymin ymax) axis(equal):将x坐标轴和y坐标轴的单位刻度大小调整为一样。,exp2-4-6: x=0:pi/10:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,x,y2) grid on %添加网格 xlabel(x轴) %横坐标名 ylabel(y轴) %纵坐标名 title(正

7、弦函数和余弦函数曲线) %标题 text(1.5,0.3,cos(x) %指定位置标注 gtext(sin(x) %用鼠标选择位置标注 axis(0 2*pi -1.2 1.2) %设置坐标轴的最大最小值,对于图形的属性编辑同样可以通过在图形窗口上直接进行。 但图形窗口关闭之后编辑结果不会保存,指出: 颜色、线型、标记三种属性的符号必须放在同一个字符串内。 属性的先后顺序没有关系,可以只指定一两个属性,也可以全部缺省,但同种属性不能同时指定两个。 颜色缺省为蓝色。 点、线标识符缺省为实线。 属性间不用间隔。,(1) 和二维图形相对应,MATLAB提供了一个三维曲 线绘制命令plot3,它的应用

8、和plot类似,只是多了z方向的数据。 exp2-3-7:绘制一条三维曲线。 clear clc z=0:pi/50:10*pi; x=sin(z); y=cos(z); plot3(x,y,z),7) 三维图形的绘制,三维图形(续),(2)绘制三维曲面的命令则有mesh(x,y,z)或surf(x,y,z)。它们的区别在于,前者绘制出的是一个用网格近似的曲面,后者绘制出的是一个真正表面图。 exp2-3-8:绘制多峰函数图。 z=peaks(40); mesh(z); surf(z);,1)MATLBA程序的基本设计原则,(1) 后面的内容是程序的注解,要善于运用注解使程序更具可读性。 (2

9、) 养成在主程序开头用clear指令清除变量的习惯,以消除工作空间中其他变量对程序运行的影响。但注意在子程序中不要用clear。 (3) 参数值要集中放在程序的开始部分,以便维护。要充分利用MATLAB工具箱提供的指令来执行所要进行的运算,在语句行之后输入分号使其及中间结果不在屏幕上显示,以提高执行速度。 (4) input指令可以用来输入一些临时的数据;而对于大量参数,则通过建立一个存储参数的子程序,在主程序中用子程序的名称来调用。 (5) 程序尽量模块化,也就是采用主程序调用子程序的方法,将所有子程序合并在一起来执行全部的操作。 (6) 充分利用Debugger来进行程序的调试(设置断点、

10、单步执行、连续执行),并利用其他工具箱或图形用户界面(GUI)的设计技巧,将设计结果集成到一起。 (7) 设置好MATLAB的工作路径,以便程序运行。,2.5MATLAB程序设计入门,(8) MATLAB程序的基本组成结构 说明 清除命令:清除workspace中的变量和图形(clear,close) 定义变量:包括全局变量的声明及参数值的设定 逐行执行命令:指MATLAB提供的运算指令或工具箱 提供的专用命令 控制循环 :包含for,if then,switch,while等语句 逐行执行命令 end 绘图命令:将运算结果绘制出来 当然更复杂程序还需要调用子程序,或与simulink以及其他

11、应用程序结合起来。,进入MATLAB的Editor/Debugger窗口来编辑程序 在编辑环境中,文字的不同颜色显示表明文字的不同属性。 绿色:注解;黑色:程序主体;红色:属性值的设定;蓝色:控制流程。 在运行程序之前,必须设置好MATLAB的工作路径,使得所要运行的程序及运行程序所需要的其他文件处在当前目录之下,只有这样,才可以使程序得以正常运行。否则可能导致无法读取某些系统文件或数据,从而程序无法执行。 通过cd指令在命令窗口中可以更改、显示当前工作路径。 通过路径浏览器(path browser)也可以进行设置,2)M文件的编辑及MATLAB工作路径的设置,(2) 程序文件 以.m格式进

12、行存取,包含一连串的MATLAB指令和必要的注解。需要在工作空间中创建并获取变量,也就是说处理的数据为命令窗口中的数据,没有输入参数,也不会返回参数。 程序运行时只需在工作空间中键入其名称即可。,3)MATLAB的程序类型,MATLAB的程序类型有三种,一种是在命令窗口下执行的脚本M文件;另外一种是可以存取的M文件,也即程序文件;最后一种是函数(function)文件。,(1) 脚本M文件 在命令窗口中输入并执行,它所用的变量都要在工作空间中获取,不需要输入输出参数的调用,退出MATLAB后就释放了。,函数定义行(关键字function) functionout1,out2,.=filenam

13、e(in1,in2,.) 输入和输出(返回)的参数个数分别由nargin和nargout两个MATLAB保留的变量来给出。 第一行帮助行,即H1行 以(%)开头,作为lookfor指令搜索的行 函数体说明及有关注解 以(%)开头,用以说明函数的作用及有关内容 如果不希望显示某段信息,可在它的前面加空行 函数体语句 函数体内使用的除返回和输入变量这些在function语句中直接引用的变量以外的所有变量都是局部变量,即在该函数返回之后,这些变量会自动在MATLAB的工作空间中清除掉。如果希望这些中间变量成为在整个程序中都起作用的变量,则可以将它们设置为全局变量。,(3) 函数文件,与在命令窗口中输

14、入命令一样,函数接受输入参数,然后执行并输出结果。用help命令可以显示它的注释说明。 具有标准的基本结构。,functionA,B=myhilb(n,m) %问题:生成一个Hilbert矩阵,该矩阵是一个nm矩阵,它的第i行 %第j列的元素为1/(i+j-1)。如果想在编写的函数中实现下面几点: %1)如果只给出一个输入参数,则会自动生成一个方阵,即有m=n %2)如果想返回两个参数A和B,则返回的B矩阵为A矩阵的平方, % 即B=AA %3)在函数中给出合适的帮助信息,包括基本功能、调用方式 % 和参数说明 if nargin=1,m=n;end for i=1:n for j=1:m A

15、(i,j)=1/(i+j-1); end end if (nargout=2),B=A*A;end,(1) 子程序与主程序之间的数据是通过参数进行传递的,子程序应用主程序传递来的参数进行计算后,将结果返回主程序。 例exp2_5_3.m,4)声明子程序(函数程序)变量,(2) 如果一个函数内的变量没有特别声明,那么这个变量只在函数内部使用,即为局部变量。如果两个或多个函数共用一个变量(或者说在子程序中也要用到主程序中的变量,注意不是参数),那么可以用global来将它声明为全局变量。 例exp2_5_4.m 全局变量的使用可以减少参数传递,合理利用全局变量可以提高程序执行的效率。,%主程序 a

16、=input(please input value of a=); b=input(please input value of b=); c=sumhe(a,b) % 在此例中,主程序设定了两个参数a和b来调用 % 子程序sumhe.m(为一个函数文件), % 所以执行主程序时,子程序就会调用主程序传递过来的 % a和b值进行计算,再将结果返回主程序。 %子程序sumhe.m % function result=sumhe(a,b) % sumhe(a,b) sum the serial of numbers from a tob % result=sum(a:b);,%主程序 global

17、a %声明变量a为全局变量 x=1:100; a=3; c=prods(x) %调用子程序prods.m %子程序prods.m % function result=prods(x) % global a % result=a*sum(x); %声明了与主程序一样的全局变量a,以便在子程序中可以 %使用主程序中定义的变量,exp2_5_3.m,exp2_5_4.m,字符串要用单引号并用括号括在里面。如: disp(text string) disp字符串显示命令 text string,5)字符串,在单引号里边的字符串可以作为矢量或矩阵的元素。使用disp命令或输入变量名就可以显示它们表示的字

18、符串。如: a=this is a;text string ? All rows in the bracketed expression must have the same number of columns.(元素1含9个字符,包括空格;元素2含有11个字符;因此只要在元素1中加入2个空格即可解决问题) aa=this is a ;text string disp(aa) aa = aa= this is a this is a text string text string,6)常用的编程命令,pause:停止m文件的执行直至有键按下。pause(n)将使程序暂停n秒。 echo on/

19、off:控制是否在屏幕上显示程序内容。 keyboard:停止程序执行,把控制权交给键盘。输入return并回车后继续程序执行。 x=input(prompt):把输入的字符串作为提示符,等待使用者输入一个响应,然后把它赋值到x。,步长缺省值为1,可以在正实数或负实数范围内任意指定。对于正数,循环变量的值大于终止值时,循环结束;对于负数,循环变量的值小于终止值时,循环结束。循环结构可以嵌套使用。 书写格式不必太过于拘泥,在Editor编辑器中会自动进行处理。,7)程序流程控制,(1) for循环语句 基本格式: for 循环变量起始值:步长:终止值 循环体 end,(2) while循环语句 基本格式 while 表达式 循环体 end,若表达式为真,则执行循环体的内容,执行后再判断表达式是否为真,若不为真,则跳出循环体,向下继续执行。,While循环和for循环的区别在于,while循环结构的循环体被执行的次数不是确定的,而for结构中循环体的执行次数是确定的。,(3) if,else,elseif语句 if 逻辑表达式 执行语句 end,当逻辑表达式的值为真时,执行该结构中的执行语句,执行完之后继续向下进行;若为假,则跳过结构中的内容,向下执行。, if 逻辑表达式 if 逻辑表达式1 执行语句1 执行语句1 else elseif 逻辑表达式2 执行语句2 执行语

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论