自动控制原理课程设计MATLAB及应用.ppt

上传人:本田雅阁 文档编号:2760629 上传时间:2019-05-12 格式:PPT 页数:356 大小:2.37MB
返回 下载 相关 举报
自动控制原理课程设计MATLAB及应用.ppt_第1页
第1页 / 共356页
自动控制原理课程设计MATLAB及应用.ppt_第2页
第2页 / 共356页
自动控制原理课程设计MATLAB及应用.ppt_第3页
第3页 / 共356页
自动控制原理课程设计MATLAB及应用.ppt_第4页
第4页 / 共356页
自动控制原理课程设计MATLAB及应用.ppt_第5页
第5页 / 共356页
点击查看更多>>
资源描述

《自动控制原理课程设计MATLAB及应用.ppt》由会员分享,可在线阅读,更多相关《自动控制原理课程设计MATLAB及应用.ppt(356页珍藏版)》请在三一文库上搜索。

1、2019/5/12,1,MATLAB及在控制系统课程中的应用,主讲:张德祥 联系电话:13856084212,2010年12月20日,2019/5/12,2,参考书目,1、Matlab及在电子信息课程中的应用(第二版) 陈怀琛 电子工业出版社 2004年1月 2、控制系统仿真与计算机辅助设计 薛定宇(东北大学) 机械工业出版社 2005年1月 3、控制系统数字仿真与CAD (第二版) 张晓华(哈尔滨工业大学)机械工业出版社 2006年5月 4、控制系统的数字仿真与计算机辅助设计 钱积新等 化学工业出版社 2003年5月 5、基于MATLAB的系统分析与设计控制系统 楼顺天等 西安电子科技大学出

2、版社 6、MATLAB6.X 教程 7、MATLAB与控制系统仿真实践 定价:34 元 作者:赵广元 书号:978-7-81124-787-9 北京航空航天大学出版社,2019/5/12,3,目 录,第1章 MATLAB 语言概述 第2章 基本语法 第3章 MATLAB 的开发环境和工具 第4章 MATLAB 的其他函数库 第5章 MATLAB的SIMULINK仿真 第6章 MATLAB在自动控制原理中应用,2019/5/12,4,第1章 MATLAB语言概述,1.1 MATLAB语言的发展 1.2 MATLAB语言的特点 1.3 MATLAB的工作环境 1.3.1 命令窗 1.3.2 图形窗

3、 1.3.3 文本编辑窗 1.4 演示程序 1.5 网络资源,2019/5/12,5,1.1 MATLAB语言的发展,1.1.1 MATLAB 概述 MATLAB是集数值计算、符号运算及图形处理等强大功能于一体的科学计算语言,是一种交互式的以矩阵为基础的系统计算平台,它用于科学和工程的计算与可视化。它的优点在于快速开发计算方法,而不在于计算速度。 MATLAB已成为一门高校必修的课程,也是最为普遍的计算工具之一。,2019/5/12,6,1.1 MATLAB语言的发展(续),1.1.2 Matlab的发展 MATLAB名字由MATrix和 LABoratory 两词的前三个字母组合而成。那是2

4、0世纪七十年代,时任美国新墨西哥大学计算机科学系主任的Cleve Moler出于减轻学生编程负担的动机,为学生设计了一组调用LINPACK和EISPACK矩阵软件工具包库程序的的“通俗易用”的接口,此即用FORTRAN编写的萌芽状态的MATLAB。 1984年由Little、Moler、Steve Bangert合作成立MathWorks公司,并把MATLAB正式推向市场。从这时起,MATLAB的内核采用C语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。,2019/5/12,7,1997年仲春,MATLAB5.0版问世,紧接着是5.1、5.2,以及和1999年春的5.3版。现今的M

5、ATLAB拥有更丰富的数据类型和结构、更友善的面向对象、更加快速精良的图形可视、更广博的数学和数据分析资源、更多的应用开发工具。 2000年末又推出6.0版本。无论在界面的设计上还是在内容上较以前版本都有很大的进展。,2019/5/12,8,1.1 MATLAB语言的发展(续),1.1.3 Matlab的版本演化 Matlab 1.0 Pc matlab-matlab 386 Matlab3.5+simulink Matlab 4.0:simlink内嵌(1992) Matlab 5.0 :全面的面向对象 Matlab 5.15.3 (1999) Matlab 6.0 (2000) Matla

6、b 6.5:购并了MATRIXx Matlab 7.0: (2004),2019/5/12,9,1.2 MATLAB语言的特点,友好的工作平台和编程环境 简单易用的程序语言 强大的科学计算及数据处理能力 出色的图形处理功能 应用广泛的模块集和工具箱 实用的程序接口和发布平台 模块化的设计和系统级的仿真,2019/5/12,10,1.3 MATLAB的工作环境,1.3.1 命令窗(Command Window) 单行命令执行方式 执行结果直接显示 1.3.2 图形窗(Figure Window) 用图形方式表示计算结果 1.3.3 文本编辑窗(File Editor) 多行命令组成语言组,可以文

7、件方式存盘,下面就具体看一下MATLAB 的工作环境演示。,2019/5/12,11,1.4 演示程序,在MATLAB的命令窗中键入 demo或demos,%pend.m plot(-0.2,0.2,0;0,color,y,linestyle,-,linewidth,10); g=0.98;l=1; theta0=pi/6;x0=l*sin(theta0); y0=-l*cos(theta0); axis(-0.75,0.75,-1.25,0); axis(off); head=line(x0,y0,color,r,linestyle,.,erasemode,xor,markersize,40

8、); body=line(0;x0,0,y0,color,b,linestyle,-,erasemode,xor); t=0;dt=0.01; while t=50 t=t+dt; theta=theta0*cos(sqrt(g/l)*t); x=l*sin(theta);y=-l*cos(theta); set(head,xdata,x,ydata,y); set(body,xdata,0;x,ydata,0;y); drawnow; end,2019/5/12,13,部分命令的演示,例1.求 的算术运算结果。 (12+2*(7-4)/32 ans = 2 例2.简单矩阵 的输入步骤。 A

9、= 1,2,3; 4,5,6; 7,8,9 A = 1 2 3 4 5 6 7 8 9,例3. 矩阵的分行输入。 A=1,2,3 4,5,6 7,8,9 A = 1 2 3 4 5 6 7 8 9 例4. 指令的续行输入 S=11/2+1/31/4+1/51/6+1/7 -1/8 S = 0.6345,例5. 复数 表达,及计算 。 (1)z1= 3 + 4i z1 = 3.0000 + 4.0000i (2)z2 = 1 + 2 * i z3=2*exp(i*pi/6) z=z1*z2/z3 z2 = 1.0000 + 2.0000i z3 = 1.7321 + 1.0000i z = 0.

10、3349 + 5.5801i,例6. 复数矩阵的生成及运算 A=1,3;2,4-5,8;6,9*i B=1+5i,2+6i;3+8*i,4+9*i C=A*B A =1.0000 - 5.0000i 3.0000 - 8.0000i 2.0000 - 6.0000i 4.0000 - 9.0000i B = 1.0000 + 5.0000i 2.0000 + 6.0000i 3.0000 + 8.0000i 4.0000 + 9.0000i C = 1.0e+002 * 0.9900 1.1600 - 0.0900i 1.1600 + 0.0900i 1.3700,例7 . 求上例复数矩阵C的

11、实部、虚部、模和相角。 C_real=real(C) C_imag=imag(C) C_magnitude=abs(C) C_phase=angle(C)*180/pi C_real = 99 116 116 137 C_imag = 0 -9 9 0 C_magnitude = 99.0000 116.3486 116.3486 137.0000 C_phase = 0 -4.4365 4.4365 0,例8. 用MATLAB计算 能得到 2 吗? (1)a=-8; r=a(1/3) r = 1.0000 + 1.7321i (2)全部方根计算如下 m=0,1,2; R=abs(a)(1/3

12、); Theta=(angle(a)+2*pi*m)/3; rrr=R*exp(i*Theta) rrr = 1.0000 + 1.7321i -2.0000 + 0.0000i 1.0000 - 1.7321i,(3)图形表示 t=0:pi/20:2*pi;x=R*sin(t);y=R*cos(t); plot(x,y,b:),grid hold on plot(rrr(1),.,MarkerSize,30,Color,r) plot(rrr(2,3),o,MarkerSize,15,Color,b) axis(-3,3,-3,3),axis square hold off,例9. 画出衰减

13、振荡曲线 及其它的包络线 。t的取值范围是 t=0:pi/50:4*pi; y0=exp(-t/3); y=exp(-t/3).*sin(3*t); plot(t,y,-r,t,y0,:b,t,-y0,:b),例10.画出 所表示的三维曲面。 的取值范围是-8,8. clear; x=-8:0.5:8; y=x; X=ones(size(y)*x; Y=y*ones(size(x); R=sqrt(X.2+Y.2)+eps; Z=sin(R)./R; mesh(X,Y,Z); colormap(hot) xlabel(x),ylabel(y),zlabel(z),2019/5/12,22,1.

14、5 网络资源,USENET新闻组 MATLAB的新闻组是comp.soft-sys.MATLAB。浏览器指向 http:/ http:/ 网络上的工具箱 http:/ http:/ 网络资源(续),BBS 哈尔滨工业大学bbs: telnet:/ 上海交通大学bbs: telnet:/ 清华大学bbs mathtools www服务 http:/ http:/ Matlab 大观园: http:/www.matlab-,2019/5/12,24,第2章 基本语法,2.1 变量及其赋值 2.2 矩阵的初等运算 2.3 元素群运算 2.4 逻辑判断及流程控制 2.5 基本绘图方法 2.6 M文件及

15、程序调试,2019/5/12,25,2.1 变量及其赋值,2.1.1 标识符与数 标识符是标识变量名、常量名、函数名、文件名的字符串的总称。 1、表示符第1个字符必须是字母。 2、长度不超过31个。 3、区分大小写。 4、变量中不能含有标点符号。 5、变量可直接参与计算。 6、变量一般无需事先定义,2019/5/12,26,2.1.1 标识符与数(续),7、特殊变量,2019/5/12,27,2.1.1 标识符与数(续),8、数值显示格式 MATLAB中所有的量为双字长浮点数,显示按下面显示规则: 在缺省情况下,当结果为整数,作为整数显示;当结果为实数,以小数后4位的精度近似显示。 如果结果中

16、的有效数字超出了这一范围,以科学计数法显示结果。 format命令改变显示格式,常用的的格式有 long (16位) bank(2个十进制位) hex(十六进制) short(缺省) short e(5位加指数) +(符号) long e(16位加指数) rat(有理数近似),2019/5/12,28,2.1.2 矩阵及其元素的赋值,矩阵获取格式:变量=表达式(或数) 1、直接输入:A=1 2 3;4 5 6;7,8,9 *矩阵用中括号括起。 *元素间用空格隔开,或用逗号隔开。 *每行用分号;号表示回车。 2、行向量 B=1 2 3 4 5 3、列向量 C=1;2;3;4;5; 每行命令后面的

17、分号;表示结果不显示。,2019/5/12,29,2.1.2 矩阵及其元素的赋值(续),4、元素可用表达式表示 D=-1.3 sqrt(3) (1+2+3)/5+1 5、用语句生成 行向量 E=from:step:to 即E=开始数:步长:结束数 E=1:2:10 得E=1 3 5 7 9 6、矩阵连接 B=a b V=a;b,2019/5/12,30,2.1.2 矩阵及其元素的赋值(续),7、用函数创建 如: zeros(m,n) ones(m,n) eye(m,n) zeros(3); zeros(3,3); zeros(2,3); zeros(3,2); ones(3); ones(3,

18、3); ones(2,3); ones(3,2); eye(3); eye(3,3); eye(3,4); eye(4,3);,2019/5/12,31,2.1.2 矩阵及其元素的赋值(续),rand(m,n) %产生均匀分布随机数(0,1) rand(state,0) %把均匀分布伪随机发生器置为0状态 randn(m,n) %产生正态分布随机数 magic(m) %产生魔方数组(对高维不适用) %即每行、每列及对角元素之和为(n3+n)/2 linspace(a,b,n) %在a和b之间均匀产生n个点的值 如:f=linspace(0,1,5) 则 f=0 0.25 0.5 0.75 1.

19、0 logspace(a,b,n) %在a和b之间对数分布产生n个点的值 如:f=logspace(0,1,5) 则 f=1.0000 1.7783 3.1623 5.6234 10.0000,2019/5/12,32,2.1.2 矩阵及其元素的赋值(续),矩阵中的元素(用圆括号中数字来注明) 1. A( i, j ) 表示第i 行,第j列元素。 2. A( i ) 表示第i个元素。 矩阵中元素的排序如右所示 3. A( i, j)=常量,表示给A中元素赋值。 当下标超出原矩阵的尺寸,则自动扩展行列并补零。,2019/5/12,33,2.1.2 矩阵及其元素的赋值(续),4. A( : , j

20、 ) 表示A阵中第j 列所有元素。 5. A( i , : ) 表示A阵中第i 行所有元素。 6. A(2:3,4:6) 表示第2行到第3行,第4列到第6列的子矩阵。 7. A(3:7) 指A阵中第3个到第7个元素(列优先)矩阵的序号编址:按列计数。 8. A(2)= 表示去除矩阵中元素。此时矩阵变为行矩阵。 9. A( : ) 指A阵中所有元素组成列向量。,2019/5/12,34,2.1.3 复数,复数的虚部部分用i 或j表示。 如:2+3i ,3-4j 复数可直接计算。 如:z=2+3i;3-4j 或 f=z+2+j;3; 复数的实部和虚部可分别赋值。但 i和j需先清除。 如:clear

21、 i j f=1,3;5,7+2,4;6,8*j,2019/5/12,35,2.1.3 复数,B=Z 表示共轭转置。 B=conj(Z)表示共轭。 如: Z=1+2i,3-4j 则: B=Z 有 B= 1-2i 3+4j B=conj(Z) 有 B= 1-2i,3+4j,2019/5/12,36,2.1.3 复数,B=conj(Z)表示转置。 B=Z. 表示非共轭复数转置。 如: Z=1+2i,3-4j 则: B=conj(Z) 有 B= 1+2i 3-4j B= Z. 有 B= 1+2i 3-4j,2019/5/12,37,2.1.4 变量的查询,存储,提取,变量的查询 who 或 whos

22、 变量的存储 save 文件名.mat 变量列表 如:save sar a b c 变量中间用空格隔开,不能加逗号。 变量的提取 load 文件名 变量的清除 clear 变量列表 清除所有变量 clear all,2019/5/12,38,2.1.5 基本赋值矩阵,为了方便给大量元素赋值,MATLAB提供了一些基本矩阵。见书中表2.1 如:A=zeros(m,n) 全0矩阵 B=ones(m,n) 全1矩阵 C=eye(m,n) 单位矩阵 D= rand(m,n) 01之间随机数均匀分布 randn(state,0); %把随机数发生器置0 E=randn(m,n) 均值为0的,单位方差正态

23、分布随机矩阵 F= magic(m) 魔方矩阵,2019/5/12,39,G= linspace(a,b,n) 线性分隔,a,b之间均匀产生n个数 H= logspace(a,b,n) 对数分隔, a,b之间产生n个数 K=diag(A); 取A中对角线元素得到列向量。 P=diag(diag(A) 产生对角阵 a=1 2 3 4; b=diag(a) 产生对角阵 如 A=1 2 3;4 5 6;7 8 9 B=diag(A) 则: B=1;5;9;,2019/5/12,40,2.2 矩阵的初等运算,2.2.1 矩阵的加减乘除 1、+,-,*,/, 2、点乘:.* 右除:./ 左除:. C=A

24、+B; C=A-B C=A*B 注意:矩阵 必须相匹配 X=AB 表示AX=B X=A-1B 即 X=inv(A)*B X=A/B 表示XB=A X=AB-1 即 X=A*inv(B) m,n=size(A) 计算矩阵A的行列大小 K=length(A) 计算矩阵A的行列大小中最大的数,2019/5/12,41,2.2.1 矩阵的加减乘除,点乘、点除 C=A.*B 对应元素间相乘。,2019/5/12,42,C=A./B 对应元素间相除。 C=A.B,2019/5/12,43,2.2.2 矩阵除法及线性方程组的解,方阵的行列式 B=det(A) 即B=|A| 方阵的求逆 B=inv(A) 即B

25、= A-1 条件|A|0 方阵的伪逆矩阵 B=pinv(A) 条件|A|=0 方阵的伴随矩阵 B=inv(A)*det(A) 即B= A-1 |A|,2019/5/12,44,2.2.3 矩阵的乘方和幂次函数,1、矩阵乘方 2、.元素对元素的乘方 C=An 表示A阵自乘n次。 C=A(-n) 表示A阵的逆矩阵自乘n次。 C=A.n 表示A阵中每个元素自乘n次。 C=A.(-n) 表示A阵中每个元素自乘n次后的逆阵。,如 C=A2 C=A .2 C=A (-2)=inv(A)2 C=A .(-2),2019/5/12,46,2.2.4 矩阵结构形式的提取与变换,B=fliplr(A) %将A矩阵

26、左右翻转 B=flipud(A) %将A矩阵上下翻转 B=reshape(A,m,n) %将A阵重组为mxn矩阵 B=rot90(A) %将A矩阵逆时针翻转90度 B=diag(A) %提取A矩阵的对角组成列向量 B=tril(A) %提取A矩阵的左下三角部分 B=triu(A) %提取A矩阵的右上三角部分,如: B=fliplr(A) B=flipud(A) B=rot90(A) B=tril(A),2019/5/12,48,2.3 元素群运算,2.3.1 数组及其赋值 1、t=初值:步长:终值; 如t=0:0.1:1 tt=10:-1:1 2、t=linspace(初值,终值,点数) 如:

27、tr=linspace(0, 2*pi, 9) 3、t=logspace(初值,终值,点数) 如:tp=logspace(0, 1, 11),2019/5/12,49,2.3.2 元素群的四则运算,表示对矩阵中每个元素进行运算 如 X=1 2 3; Y=4 5 6 Z=X.*Y Z=4 10 18 Z=X.Y Z=4 2.5 2 Z=X.Y Z=1 32 729 Z=X.N N=2 Z=1 4 9 Z=2.X Y Z=2 4 8 16 32 64,2019/5/12,50,2.3.3 元素群的函数,等命令可以直接MATLAB中exp、sprt、sin、cos使用在矩阵上,这种运算只是定义在矩阵

28、的单个元素上,即分别对矩阵的每个元素进行运算。MATLAB中也提供了基本的三角函数。 注意其中的取整,2019/5/12,51,2.3.3 元素群的函数,2019/5/12,52,2.4 逻辑判断及流程控制,2.4.1 关系操作符 MATLAB常用的关系操作符有:(大于)、=(大于或等于)、 = =(等于)、 =(不等于)。 MATLAB的关系操作符可以用来比较两个大小相同的数组,或者比较一个数组和一个标量。在与标量比较时,结果和数组大小一样。 a=1:9; b=a4 b = 0 0 0 0 1 1 1 1 1 c=a(a4) c = 5 6 7 8 9,2019/5/12,53,2.4.1

29、关系操作符,矩阵查找和排序 子矩阵的查找使用find命令完成,它返回关系表达式为真的下标。例如: a=10:20; find(a15) ans = 7 8 9 10 11 矩阵的排序使用sort函数,它将矩阵按照升序排列。,2019/5/12,54,2.4.2 逻辑运算,逻辑操作符定义了一种与或非的关系表达式。MATLAB的逻辑操作符有&(与)、|(或)、(非)、xor(异或)。例如: c=(a4) c =1 1 1 1 0 0 0 0 0 c=(a4)&(a7) c =0 0 0 0 1 1 0 0 0 C=xor(A,B),2019/5/12,55,2.4.3 其他关系与逻辑函数,xor(

30、x,y) 异或运算。x或y非零(真)返回1,x和y都是零(假)或都是非零(真)返回0。 any(x) 如果在一个向量x中,任何元素是非零,返回1;矩阵x中的每一列有非零元素,返回1。 all(x) 如果在一个向量x中,所有元素非零,返回1;矩阵x中的每一列所有元素非零,返回1。,%逻辑函数的运用示例。 randn(state,1), R=randn(3,6) %创建正态随机阵 L=abs(R)1.5 %不等式条件运算,结果给出逻辑数组 R(L)=0 %“逻辑1“对应的元素赋0值。 s=(find(R=0) %利用find获得符合关系等式条件的元素“单下标“ R(s)=111 %利用“单下标“定

31、位赋值 ii,jj=find(R=111); %利用find获得符合关系等式条件的元素“双下标“ disp(ii),disp(jj),【例】关系运算运用之一:求近似极限,修补图形缺口。 t=-2*pi:pi/10:2*pi; y=sin(t)./t; subplot(1,2,1),plot(t,y),axis(-7,7,-0.5,1.2), xlabel(t),ylabel(y),title(残缺图形) tt=t+(t=0)*eps; yy=sin(tt)./tt; subplot(1,2,2),plot(tt,yy),axis(-7,7,-0.5,1.2) xlabel(t),ylabel(

32、yy),title(正确图形) Warning: Divide by zero.,2019/5/12,59,【例】逻辑操作应用之一:逐段解析函数的计算和表现。本例演示削顶整流正弦半波的计算和图形绘制。,t=linspace(0,3*pi,500);y=sin(t); z1=(t2*pi).*y; w=(tpi/3 subplot(1,3,1),plot(t,y,:r),ylabel(y) subplot(1,3,2),plot(t,z1,:r),axis(0 10 -1 1) subplot(1,3,3),plot(t,z2,-b),axis(0 10 -1 1),2019/5/12,61,【

33、例】写出生成下图所示波形的MATLAB脚本文件M文件。图中虚线为正弦波,要求它的负半波被置零,且在 处被削顶。,t=linspace(0,3*pi,500); y=sin(t); z1=(t2*pi).*y; w=(tpi/3,2019/5/12,63,2.4.4 流程控制语句,脚本 对于简单问题,使用直接输入命令简单有效;对稍复杂和多次重复的应用,直接输入命令比较麻烦。MATLAB提供了逻辑解决方案,它允许用户把多个命令放在一个简单的文本文件中,如同在MATLAB中键入命令一般,这种文件称为脚本文件,由于脚本文件以m为扩展名,它常称为M文件。脚本文件为文本形式的,对跨平台处理十分有利。 使用

34、脚本文件,可以把命令保存在磁盘上,便于以后的访问;同时对使用大的数组也带来的方便;增加注释可以为脚本中的命令作文挡以免以后忘记。,2019/5/12,64,2.4.4 流程控制语句,为了便于应用,MATLAB提供了一些流程控制的命令。这些命令对脚本编写带来了一些方便,但是需要注意的是,尽量不要使用这些流程控制命令,尤其是循环控制命令。 If 语句 很多情况下,命令的序列必须根据关系的检验有条件的执行,它由if-else-end结构提供。它的结构如下: if expression1 commands1 elseif expression2 commands2 elseif else comman

35、ds end,2019/5/12,65,2.4.4 流程控制语句,在执行过程中,MATLAB依次检查各个表达式,只执行第一个表达式为真的命令串,接下来的关系表达式不检验,跳过其余的if-else-end结构,而且,最后的else命令可有可无。,2019/5/12,66,求,2019/5/12,67,2.4.4 流程控制语句,for循环 for循环允许一组命令以固定的次数重复,它的一般形式是 for x=array command end for 和end之间的命令串按数组array的每一列执行一次,直到n次后终止。 如:for j=1:2:10 y=j+j.2; end,2019/5/12,6

36、8,2.4.4 流程控制语句,for循环不能使用内部重新赋值循环变量而终止; for循环内部接受任何有效的MATLAB数组; for循环可以嵌套; 只要有矩阵形式可以解决的问题,不要使用for循环。使用for循环的算法执行很慢,一个好的MATLAB算法不应当出现循环语句。Tic/toc 循环可以使用break跳出,但只跳出所在的循环,不跳出整个嵌套结构。,2019/5/12,69,2.4.4 流程控制语句,while循环 与for循环以固定的次数求一组指令相反,while循环以不定的次数求一组语句的值。While循环的一般形式为: while expression commonds end 只

37、要表达式expression里的所有元素为真,就执行命令串commands。通常表达式求值给一个标量值,单数组值也同样有效。,2019/5/12,70,求,2019/5/12,71,【例】Fibonacci数组的元素满足Fibonacci 规则: , ;且 。现要求该数组中第一个大于10000的元素,a(1)=1; a(2)=1; i=2; while a(i)=10000 a(i+1)=a(i-1)+a(i); i=i+1; end; i a(i) i = 21 ans = 10946,2019/5/12,72,用for循环指令来寻求Fibonacc数组中第一个大于10000的元素。,n=1

38、00;a=ones(1,n); for i=3:n a(i)=a(i-1)+a(i-2); if a(i)=10000 a(i) break; end; End i ans = 10946 i = 21,2019/5/12,73,2.4.4 流程控制语句,Switch 语句 是一种均衡实现的多分支语句。 Switch expression Case 值1 commands1 Case 值2 commands2 Otherwise commandsN end,2019/5/12,74,学生的成绩管理,用来演示switch结构的应用。,clear; for i=1:10 ai=89+i;bi=79

39、+i;ci=69+i;di=59+i; end; c=d,c; Name= Jack,Marry,Peter, Rose, Tom; Mark=72,83,56,94,100; Rank=cell(1,5); S=struct(Name,Name,Marks,Mark,Rank,Rank);,for i=1:5 switch S(i).Marks case 100 S(i).Rank=满分; case a S(i).Rank= 优秀; case b S(i).Rank= 良好; case c S(i).Rank= 及格; otherwise S(i).Rank=不及格; end end dis

40、p(学生姓名 , 得分 , 等级); disp( ) for i=1:5; disp(S(i).Name,blanks(6),num2str(S(i).Marks),blanks(6),S(i).Rank); end;,2019/5/12,76,2.5 基本绘图方法,2.5.1 直角坐标中的两维曲线 plot(y) 以y的下标作为x坐标,以y值作为y坐标。 plot(x,y) 数组x和y的长度应匹配。 每次绘制将清除以前的图形。,2019/5/12,77,2.5.1 直角坐标中的两维曲线,图形的标注和图例 1、title(text) %给图形加上标题 2、xlabel(text) %给X轴加上

41、说明 3、ylabel(text) %给Y轴加上说明 4、zlabel(text) %给Z轴加上说明 5、text(x,y,string) %在图形指定位置加上说明 6、gtext(string) %利用鼠标在图形加上说明 7、legend(string1,string2,) %给图形加图例 8、legend off %关闭图例,如:作y=sin(t)的二维图形 t=linspace(0,3*pi,200); y=sin(t); plot(t,y); title(y=sin(t); xlabel(t/s); ylabel(y=sin(t); text(3,0.4,y=sin(t); legen

42、d(y=sin(t); gtext(y=sin(t),2019/5/12,79,2.5.2 线型、点型和颜色,plot(x,y,r:) 后面是颜色和线型,2019/5/12,80,2.5.3 多条曲线的绘制,1、plot(x1,y1,x2,y2); 2、plot(x1,y1,r,x2,y2); 3、plot(x1,y1) hold 是乒乓切换 hold on %图形保持 plot(x2,y2,r) hold off %解除保持 4、plot(t,y1;y2;y3) %自动给颜色和线型。 5、plotyy(x1,y1,x2,y2) %可画2个不同纵坐标的图,t=0:0.1:3*pi; y1=si

43、n(t); y2=cos(t); plot(t,y1,r-.,t,y2,k); xlabel(t/s); ylabel(y1=sin(t), y2=cos(t); title(y1=sin(t), y2=cos(t); text(3,0.4,y1=sin(t); text(2,0,y2=cos(t); legend(y1=sin(t),y2=cos(t);,2019/5/12,82,2.5.4 屏幕控制与其他2维绘图,1. figure %打开图形窗口 2. figure(n) %打开指定图形窗口 3. close %关闭当前图形窗口 4. close all %关闭所有图形窗口 5. clo

44、se(n) %关闭指定图形窗口 6. clf %清除窗口内所有内容,2019/5/12,83,2.5.4 屏幕控制与其他2维绘图(续),subplot(m,n,p) %图形分为m x n个子图,并指定第p个。排号从左到右,从上到下。 stem(t,y) %绘脉冲图 stairs(t,y) %绘阶梯图 bar(t,y) %绘条形图 errorbar(t,y) %绘误差条形图 hist(y) %绘直方图 fill(t,y,r) %绘填充图,如y=exp(-0.1t)*sin(t) t=0:0.3:4*pi; y=exp(-0.1*t).*sin(t); figure(3) plot(t,y,k*)

45、; figure(4) subplot(2,2,1);stem(t,y,k.);title(stem(t,y); subplot(2,2,2);stairs(t,y,b);title(stairs(t,y); subplot(2,2,3);bar(t,y,g);title(bar(t,y); subplot(2,2,4);fill(t,y,r);title(fill(t,y,r);,hist(y) t=0:0.1:4*pi; y=exp(-0.1*t).*sin(t); y1=5.*y.*sin(t); plotyy(t,y,t,y1);,2019/5/12,86,2.5.4 屏幕控制与其他2维绘图(续),pause %暂停 grid on %增加网格 grid off %取消网格 grid %乒乓增加和取消网格 loglog %双对数坐标log10 semilogx %半对数坐标,x轴半对数 semilogy %半对数坐标,y轴半对数 polar(theta,rho) %极坐标图,2019/5/12,87,2.5.4 屏幕控制与其他2维

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1