MATLAB m文件和函数课件_第1页
MATLAB m文件和函数课件_第2页
MATLAB m文件和函数课件_第3页
MATLAB m文件和函数课件_第4页
MATLAB m文件和函数课件_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

MATLAB提供了强大的图形绘制功能,用户只需制定绘图方式,并提供充足的绘图数据,即可以得到所需的图形。五、绘图功能与技巧

Matlab与系统仿真1MATLABm文件和函数

(一)二维图形绘制(二)三维图形绘制(三)图形可视编辑工具

主要内容Matlab与系统仿真2MATLABm文件和函数(1)简单二维图形绘制(2)特殊二维图形绘制(3)二维图形的修饰函数(4)图形窗口的控制与表现(5)二维图形绘制流程(总结)

(一)二维图形绘制Matlab与系统仿真3MATLABm文件和函数1.Plot(y)

当y为一向量,以y的序号作为X轴,按向量y得值绘制曲线。(1)绘制简单的二维图形2.Plot(x,y)x,y均为向量,以x为X轴,y为Y轴绘制曲线(x,y等长)。3.Plot(x,y,’option’)曲线的属性(颜色、粗细。。。)由’option’确定。Matlab与系统仿真4MATLABm文件和函数’option’选项:线的类型、标记符号、颜色等。曲线线型曲线颜色标记符号选项意义选项意义选项意义选项意义选项意义'–''––'':''–.'实线虚线点线点划

'b''g''m''w'

蓝色绿色红紫白色'c''k''r''y'蓝绿黑色红色黄色'*''.''x''o'星号点号叉号圆圈'pentagram''square''diamond''hexagram'五角星正方块菱形块六角星线宽LineWidth例:plot(t,y2,'k--','LineWidth',5)Matlab与系统仿真5MATLABm文件和函数例1:

>>t=0:0.1:pi;>>plot(t)Matlab与系统仿真6MATLABm文件和函数例2:绘制出一个周期内的正弦曲线*语句命令及绘图结果:>>t=0:0.1:2*pi;>>y=sin(t);>>plot(t,y)Matlab与系统仿真7MATLABm文件和函数例3:>>plot(t,y2,':g')>>plot(t,y3,'xk')>>t=0:0.1:2*pi;>>y1=sin(t);>>y2=cos(t);>>y3=sin(t).*cos(t);>>plot(t,y1,'-')Matlab与系统仿真8MATLABm文件和函数1.常用调用格式(2)绘制特殊二维图形函数名和常用调用格式意义comet(x,y)compass(x,y)feather(x,y)fill(x,y,c)hist(y,n)loglog(x,y)polar(x,y)quiver(x,y)stairs(x,y)stem(x,y)彗星状轨迹图罗盘图羽毛状图二维填充函数直方图对数图极坐标图磁力线图阶梯图形火柴杆图Matlab与系统仿真9MATLABm文件和函数例:>>t=-pi:0.3:pi;>>y=1./(1+exp(-t));>>plot(t,y);尝试:>>stem(t,y);>>polar(t,y);>>stairs(t,y);……Matlab与系统仿真10MATLABm文件和函数Matlab与系统仿真11MATLABm文件和函数给定函数的曲线绘制Plot()函数可以容易地绘制显式表达式的函数,但隐函数曲线如何绘制?按常规:>>x=-sqrt(5):0.01:sqrt(5);>>y1=sqrt((5-x.^2)/3);>>y2=-sqrt((5-x.^2)/3);>>plot(x,y1,x,y2)如:x2+3y2=5

Matlab与系统仿真12MATLABm文件和函数ezplot()函数>>ezplot('x^2+3*y^2-5')

Matlab与系统仿真13MATLABm文件和函数MATLAB提供图形函数,专门用于对由plot命令所画图形进行修饰。(3)二维图形的修饰函数函数并非图形修饰唯一方法——菜单、右键快捷菜单、属性设置页也可以。Matlab与系统仿真14MATLABm文件和函数1.坐标轴范围的设定:axis([Xmin,Xmax,Ymin,Ymax])2.加坐标轴名称:xlabel(‘string’),ylabel(‘string’)3.给图形加标题:title(‘string’)4.加图例标注:legend(‘string1’,’string2’,…)5.加网格:gridon,gridoff6.加普通标注:gtext(‘string’),在弹出的图形窗口中,选择地点,单击鼠标。Matlab与系统仿真15MATLABm文件和函数Matlab与系统仿真16MATLABm文件和函数例:原图>>t=0:0.1:2*pi;>>y1=sin(t);>>y2=cos(t);>>plot(t,y1,'r:',t,y2,'g*')Matlab与系统仿真17MATLABm文件和函数将图形的x轴的大小范围限定在[0,2pi]之间,y轴的大小范围限定在[-2,2]之间;2)x、y坐标轴分别标注为“弧度值”、“函数值”;3)图形标题标注为“正弦曲线和余弦曲线”;4)添加图例标注,标注字符分别为“y1”、“y2”;5)给图形添加网格线;6)在两条曲线上分别标注文本“y1=sin(t)”、

“y2=cos(t)”。要求:进一步修饰例2.16的图形,实现以下要求:

Matlab与系统仿真18MATLABm文件和函数解:

>>helplineline([起点横坐标,终点横坐标],[起点纵坐标,终点纵坐标]),例:line([1,2],[3,4])将画出(1,3)到(2,4)的一条直线,而不是(1,2)到(3,4)。Matlab与系统仿真19MATLABm文件和函数最后结果(注意gtext指令

):

要产生这个箭头,一.可以>>inset>>arrow二.可以通过函数实现,详见补充知识的文件夹,如下图请大家看同学备注Matlab与系统仿真20MATLABm文件和函数1.创建或打开图形窗口(4)图形窗口的控制与表现在命令窗口运行绘图指令,自动创建(当前窗口,唯一);Figure命令,创建另一窗口(当前),保留原窗口;菜单建立新窗口;Clf命令,清除当前窗口所有内容Matlab与系统仿真21MATLABm文件和函数图形重叠(同一坐标系中绘制多幅图形)(1)Plot命令会清屏,但可在一个plot命令中实现:Plot(x,y1,’option1’,x,y2,’option2’,…)x为公共X轴,分别以y1,y2为Y轴绘制多条曲线,每条曲线的属性由相应的’option’确定。Matlab与系统仿真22MATLABm文件和函数例:>>t=0:0.1:2*pi;

>>y1=sin(t);

>>y2=cos(t);>>y3=sin(t).*cos(t);>>plot(t,y1,'-',t,y2,':g',t,y3,'xk')Matlab与系统仿真23MATLABm文件和函数思考:但很多实验情况下,实际上是对同一个变量进行测量,并将数据进行绘图比较。Matlab与系统仿真24MATLABm文件和函数(2)holdon、holdoff指令

holdon:保留当前窗口图形;

holdoff:解除holdon;例:t=0:0.1:2*pi;y1=sin(t);y2=cos(t);y3=sin(t).*cos(t);plot(t,y1,'-')

holdonplot(t,y2,':g')plot(t,y3,'xk')line([0,8],[0,0])

holdoffMatlab与系统仿真25MATLABm文件和函数3.图形窗口分割利用subplot()函数将整个图形窗口分割成若干个子图形部分,然后在每个部分用不同函数绘制不同曲线。subplot(m,n,p):将当前窗口分割成m行、n列,并且当前在其中的第p个区域绘图。绘图区域编号原则:“从左到右,从上到下”。允许每个子窗口不同的坐标系。Matlab与系统仿真26MATLABm文件和函数subplot(3,2,2)t=0:0.1:2*pi;y1=sin(t);plot(t,y1,'-')subplot(3,2,4)t=-pi:0.1:pi;y2=sin(t);plot(t,y2,'xk')例:Matlab与系统仿真27MATLABm文件和函数MATLAB图形窗口控制函数(汇总)函数功能说明figurefigure(n)每调用一次就打开一个新的图形窗口创建或打开第n个图形窗口,使之成为当前窗口clf清除当前图形窗holdonholdoff保留当前窗口的图形不被后继图形覆盖,可实现在同一坐标系中多幅图形的重叠解除holdon命令,一般与holdon成对使用subplot(m,n,p)将当前绘图窗口分割成m行、n列,并在第p个区域绘图closecloseall关闭当前图形窗口关闭所有图形窗口Matlab与系统仿真28MATLABm文件和函数(5)二维图形绘制流程图输入图形显示的相关函数选择图形显示区域调用相关的绘图指令设置图形的属性图形的修饰保存打印输出Matlab与系统仿真29MATLABm文件和函数>>x=0:0.05:pi;>>y1=5*sin(2*x);>>y2=4*cos(4*x);>>subplot(3,1,1);>>plot(x,y1);>>axis([0pi-5.55.5]);>>gridon;>>xlabel('Time');>>ylabel('Amplitude');>>title('y=5sin(2x)');相关函数图形显示区域绘图指令、属性设置图形修饰举例:Matlab与系统仿真30MATLABm文件和函数>>subplot(3,1,2);>>plot(x,y2);>>axis([0pi-5.55.5]);>>gridon;>>xlabel('Time');>>ylabel('Amplitude');>>title('y=4cos(4x)');>>subplot(3,1,3);>>plot(x,y1,'-.or',x,y2,'-b+');>>xlabel('Time');>>ylabel('Amplitude');>>title('characteristiccurve');Matlab与系统仿真31MATLABm文件和函数例:可以用subplot()函数将整个图形窗口分割成若干个子图形部分,然后在每个部分用不同函数绘制不同曲线。>>t=-pi:0.3:pi;y=1./(1+exp(-t));>>subplot(221),plot(t,y);>>title('plot(t,y)')>>subplot(222),stem(t,y);>>title('stem(t,y)')>>subplot(223),polar(t,y);>>title('polar(t,y)')>>subplot(224),stairs(t,y);>>title('stairs(t,y)')Matlab与系统仿真32MATLABm文件和函数

(二)三维图形绘制

(1)三维曲线的基本绘图(2)三维网格曲面的绘制(3)图像显示与处理Matlab与系统仿真33MATLABm文件和函数调用格式

Plot3(x1,y1,z1,‘option1’,x2,y2,z2,‘option2’,…)(1)三维曲线的基本绘图参数意义与二维绘图命令相似。以逐点连折线的方式绘制三维折线图,当各个数据点的间距较小时,绘制的即三维曲线。也可用各种特殊绘图函数。也可用各种图形修饰函数,但要求多考虑一个Z轴方向。Matlab与系统仿真34MATLABm文件和函数t=0:pi/50:8*pi;x=sin(t);y=cos(t);plot3(x,y,t);stem3(x,y,t)例:三维螺旋线绘制。Matlab与系统仿真35MATLABm文件和函数三维网格曲面图所构成的网格状表面由X-Y平面上的矩形栅格及相应的Z坐标构成,相邻点之间用直线连接。(2)三维网格曲面的绘制等高图密度图建筑立面。。。对于显示大型数据矩阵或双变量的函数是很有用。Matlab与系统仿真36MATLABm文件和函数即定义四边形各个顶点的三维坐标值;1.栅格数据点的产生一般先知道(x,y),再利用函数公式计算z的坐标;二维坐标(x,y)是种栅格形的数据点,由meshgrid命令产生。格式

meshgrid(x,y):x,y是向量,表示坐标范围。Matlab与系统仿真37MATLABm文件和函数x=-2:0.1:2;y=x;[X,Y]=meshgrid(x,y);例Matlab与系统仿真38MATLABm文件和函数2.绘制三维网格曲面函数调用格式说明[X,Y]=meshgrid(x,y)根据(x,y)二维坐标数据生成x-y网格点坐标数据其中:x,y是向量;X,Y是矩阵mesh(X,Y,Z)绘制三维网格曲面:通过直线连接相邻的点构成的三维曲面surf(X,Y,Z)绘制三维阴影曲面:通过小平面连接相邻的点构成的三维曲面Matlab与系统仿真39MATLABm文件和函数Z=X.*exp(-X.^2-Y.^2);mesh(X,Y,Z)gridon

Matlab与系统仿真40MATLABm文件和函数例:绘制由函数表示的曲面图形。Matlab与系统仿真41MATLABm文件和函数Matlab与系统仿真42MATLABm文件和函数

imread()%读取放在当前工作目录中的图像文件函数,

%保存为3维数组数据;

image()%读取保存的3维图像数据并显示图像。(3)图像显示与处理例:W=imread(‘pic.jpg’);%图形文件存当前目录

image(W)

Matlab与系统仿真43MATLABm文件和函数W是三维数据,由三层矩阵叠放而成,分别存放表示红、绿、蓝三原色分量。尝试:改变图片的色调?

1)将照片变为黄颜色基调;2)将照片变为底片效果。Matlab与系统仿真44MATLABm文件和函数>>W(:,:,3)=0;>>image(W)

>>image(uint8(255-double(W)))

Matlab与系统仿真45MATLABm文件和函数(三)MATLAB的图形可视化编辑工具图形管理窗口除了简单的显示图形功能外,本身就是一个功能强大的图形可视编辑工具,可实现的功能主要有:1)通用的图形文件管理功能,如保存、打开、新建图形文件等;2)通用的图形效果编辑功能,如图形放大、缩小、旋转、对齐等;3)图形对象插入功能,如插入坐标轴名称、图形标题、图例标注、线段、文字等;4)独立地设置窗口中各图形对象属性功能,如线段的类型、颜色、粗细等。

Matlab与系统仿真46MATLABm文件和函数(1)选择菜单[insert]三种编辑图形方法:t=0:0.1:2*pi;y1=sin(t);y2=cos(t);y3=sin(t).*cos(t);plot(t,y1,'-')holdonplot(t,y2,':g')plot(t,y3,'xk')holdoffMatlab与系统仿真47MATLABm文件和函数单击图形窗口工具栏中的编辑图标(箭头)即可进入图形编辑状态。(2)右键快捷菜单用户任意选择特性对象,出现选中标志,单击右键,可进行选项设置。2012aMatlab与系统仿真48MATLABm文件和函数在方法(2)的快捷菜单中,选择“属性”项,可进行如下设置环境:(3)“属性”菜单项鼠标在图形中非图形对象区域单击,将显示图形修饰对话框:Matlab与系统仿真49MATLABm文件和函数Matlab与系统仿真50MATLABm文件和函数Matlab与系统仿真51MATLABm文件和函数第二章回顾2.1MATLAB的工作环境MATLAB程序主界面:

菜单、工具栏、命令窗口、当前路径浏览器、工作空间浏览器、命令历史浏览器Matlab与系统仿真52MATLABm文件和函数MATLAB两种编程方式比较交互式的指令行操作方式M文件编程工作方式工作过程用户在工作窗口中按MATLAB语法规则输入命令行后回车确认,系统将执行该命令并给出运算结果。当用户在工作窗口中输入M文件名并回车确认后,系统将自动搜索该文件。若该文件存在,系统将按M文件中语句所规定的计算任务以解释方式逐一执行语句,并返回运算结果。优点简便易行,交互性强输入、编辑和调试、保存简便缺点当要解决的问题变得复杂后,输入、编辑和调试困难需要在文本编辑器下编辑并保存文件,过程较复杂适用情况非常适合于对简单问题的数学演算、结果分析及测试非常适合于大型或复杂问题的解决文本编辑窗口:Matlab与系统仿真53MATLABm文件和函数2.2MATLAB语言的基本元素

变量:变量的命名应遵循如下规则

赋值语句

矩阵的表示:一般、等差输入、特殊、矩阵元素函数功能ones(n,m)产生n行m列的全1矩阵zeros(n,m)产生n行m列的全0矩阵rand(n,m)产生n行m列的在[0,1]区间均匀分布的随机矩阵randn(n,m)产生n行m列的正态分布的随机矩阵eye(n)产生(n×n)维的单位矩阵Matlab与系统仿真54MATLABm文件和函数2.3矩阵的运算运算符名称指令示例说明+加A+B若A、B为同维矩阵,则表示A与B对应元素相加;若其中一个矩阵为标量则表示另一矩阵的所有元素加上该标量。-减A-B若A、B为同维矩阵,则表示A与B对应元素相减;若其中一个矩阵为标量则表示另一矩阵的所有元素减去该标量*矩阵乘A*B矩阵A与B相乘,A和B均可为向量或标量,但A和B的维数必须符合矩阵乘法的定义\矩阵左除A\B方程A*X=B

的解X/矩阵右除A/B方程X*A=B

的解X^矩阵乘方A^BA、B均为标量时,表示A的B次方幂;A为方阵,B为正整数时,表示矩阵A的B次乘积;当A、B均为矩阵时,无定义代数运算

Matlab与系统仿真55MATLABm文件和函数函数功能d=size(A)[m,n]=size(A)将矩阵A的行数和列数赋值给变向量b将矩阵A的行数和列数分别赋值给变量m和nA'计算矩阵A的转置矩阵inv(A)计算矩阵A的逆矩阵length(A)计算矩阵A的长度(列数)sum(A)若A为向量,计算A所有元素之和;若A为矩阵,产生一行向量,其元素分别为矩阵A各列元素之和max(A)若A为向量,求出A所有元素的最大值;若A为矩阵,产生一行向量,其元素分别为矩阵A各列元素的最大值函数运算

prod(A)min(A)Matlab与系统仿真56MATLABm文件和函数运算符名称指令示例说明.*元素群乘A.*B矩阵A与B对应元素相乘,A和B必须为同维矩阵或其中之一为标量.\元素群左除A.\B矩阵B的元素除以矩阵A的对应元素,A、B必须为同维矩阵或其中之一为标量./元素群右除A./B矩阵A的元素除以矩阵B的对应元素,A、B必须为同维矩阵或其中之一为标量.^元素群乘方A.^B矩阵A的各元素与矩阵B的对应元素的乘方运算,即[A(i,j)^B(i,j)],A、B必须为同维矩阵数组(元素群)运算

Matlab与系统仿真57MATLABm文件和函数符号意义符号意义>大于>=大于或等于<小于<=小于或等于==等于~=不等于关系运算

Matlab与系统仿真58MATLABm文件和函数符号意义&与逻辑|或逻辑~非逻辑逻辑运算

Matlab与系统仿真59MATLABm文件和函数2.4MATLAB的程序流程控制

循环控制结构

条件转移结构

Matlab与系统仿真60MATLABm文件和函数2.5M文件的编写

命令文件

函数文件

function[返回参数1,返回参数2,…]=函数名(输入参数1,输入参数2,…)%注释说明语句段,由%引导输入、返回变量格式的检测函数体语句函数文件具有特点

Matlab与系统仿真61MATLABm文件和函数例:求n!(MATLAB函数的可递归调用性)

functionk=my_fact(n)ifnargin~=1,error(‘输入变量个数错误,只能一个’);endifnargout>1,error(‘输出变量个数过多’);endifabs(n-floor(n))>eps|n<0%判定n是否为非负整数

error(‘n应该为非负整数’);endifn>1

%如果n>1,进行递归调用

k=n*my_fact(n-1);elseifany([01]==n)%0!=1!=1为已知

k=1;end>>my_fact(11)

ans=39916800Matlab与系统仿真62MATLABm文件和函数2.6MATLAB的图形绘制

二维图形的绘制

函数调用格式说明plot(y)y为向量,以y的序号作为X轴,按y的值绘制曲线plot(x,y,'option')x,y均为向量,以x作为x轴、y作为y轴绘制曲线,曲线的属性由选项“option”来确定plot(x,y1,'option1',x,y2,'option2',…)以公共的向量x作为x轴,分别以向量y1,y2,…为y轴绘制多条曲线,每条曲线的属性由相应的选项“option”来确定plot(x1,y1,'option1',x1,y2,'option2',…)分别以向量xl,x2,…作为x轴,以y1,y2,…为y轴绘制多条曲线,每条曲线的属性由相应的选项“'option”来确定Matlab与系统仿真63MATLABm文件和函数符号颜色符号线型符号标记'b'蓝色'-'实线'v'▽'g'绿色'--'虚线'^'△'m'洋红色':'点线'。'圆圈'w'白色'-.'点划线'*'星号'c'青色'x'

温馨提示

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

评论

0/150

提交评论