收藏 分享(赏)

MATLAB及在控制系统课程中的应用.ppt

上传人:dreamzhangning 文档编号:5752412 上传时间:2019-03-15 格式:PPT 页数:422 大小:2.11MB
下载 相关 举报
MATLAB及在控制系统课程中的应用.ppt_第1页
第1页 / 共422页
MATLAB及在控制系统课程中的应用.ppt_第2页
第2页 / 共422页
MATLAB及在控制系统课程中的应用.ppt_第3页
第3页 / 共422页
MATLAB及在控制系统课程中的应用.ppt_第4页
第4页 / 共422页
MATLAB及在控制系统课程中的应用.ppt_第5页
第5页 / 共422页
点击查看更多>>
资源描述

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

2、X 教程 张志涌 徐彦琴,2019/2/8,3,第一篇 语言篇,第1章 MATLAB 语言概述 第2章 基本语法 第3章 MATLAB 的开发环境和工具 第4章 MATLAB 的其他函数库 第5章 MATLAB的SIMULINK仿真 第六章 计算机仿真的基本概念,2019/2/8,4,第二篇 应用篇,第6章 计算机仿真的基本概念 第7章 MATLAB在自动控制原理中应用,2019/2/8,5,第1章 MATLAB语言概述,1.1 MATLAB语言的发展 1.2 MATLAB语言的特点 1.3 MATLAB的工作环境1.3.1 命令窗1.3.2 图形窗1.3.3 文本编辑窗 1.4 演示程序 1

3、.5 网络资源,2019/2/8,6,1.1 MATLAB语言的发展,1.1.1 MATLAB 概述MATLAB是集数值计算、符号运算及图形处理等强大功能于一体的科学计算语言,是一种交互式的以矩阵为基础的系统计算平台,它用于科学和工程的计算与可视化。它的优点在于快速开发计算方法,而不在于计算速度。 MATLAB已成为一门高校必修的课程,也是最为普遍的计算工具之一。,2019/2/8,7,1.1 MATLAB语言的发展(续),1.1.2 Matlab的发展MATLAB名字由MATrix和 LABoratory 两词的前三个字母组合而成。那是20世纪七十年代,时任美国新墨西哥大学计算机科学系主任的

4、Cleve Moler出于减轻学生编程负担的动机,为学生设计了一组调用LINPACK和EISPACK矩阵软件工具包库程序的的“通俗易用”的接口,此即用FORTRAN编写的萌芽状态的MATLAB。 1984年由Little、Moler、Steve Bangert合作成立MathWorks公司,并把MATLAB正式推向市场。从这时起,MATLAB的内核采用C语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。,2019/2/8,8,1997年仲春,MATLAB5.0版问世,紧接着是5.1、5.2,以及和1999年春的5.3版。现今的MATLAB拥有更丰富的数据类型和结构、更友善的面向对象、

5、更加快速精良的图形可视、更广博的数学和数据分析资源、更多的应用开发工具。 2000年末又推出6.0版本。无论在界面的设计上还是在内容上较以前版本都有很大的进展。,2019/2/8,9,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) Matlab 6.5:购并了MATRIXx Matlab 7.0:

6、(2004) 2009a(7.8),2019/2/8,10,1.2 MATLAB语言的特点,友好的工作平台和编程环境 简单易用的程序语言 强大的科学计算及数据处理能力 出色的图形处理功能 应用广泛的模块集和工具箱 实用的程序接口和发布平台 模块化的设计和系统级的仿真,2019/2/8,11,1.3 MATLAB的工作环境,1.3.1 命令窗(Command Window)单行命令执行方式执行结果直接显示 1.3.2 图形窗(Figure Window)用图形方式表示计算结果 1.3.3 文本编辑窗(File Editor)多行命令组成语言组,可以文件方式存盘,下面就具体看一下MATLAB 的工

7、作环境演示。,2019/2/8,12,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); body=line(0;x0,0,y0,co

8、lor,b,linestyle,-,erasemode,xor); t=0;dt=0.01; while t=50t=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/2/8,14,部分命令的演示,例1.求 的算术运算结果。 (12+2*(7-4)/32 ans =2 例2.简单矩阵 的输入步骤。 A = 1,2,3; 4,5,6; 7,8,9 A =1 2 34 5

9、 67 8 9,例3. 矩阵的分行输入。 A=1,2,34,5,67,8,9 A =1 2 34 5 67 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.3349 + 5.5801i,例6. 复数矩阵的生成及运算 A=1,3;2,4-5,8;

10、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.0000i2.0000 - 6.0000i 4.0000 - 9.0000i B =1.0000 + 5.0000i 2.0000 + 6.0000i3.0000 + 8.0000i 4.0000 + 9.0000i C =1.0e+002 *0.9900 1.1600 - 0.0900i1.1600 + 0.0900i 1.3700,例7 . 求上例复数矩阵C的实部、虚部、模和相角。 C_real=real(C) C_imag=imag(C) C_magnit

11、ude=abs(C) C_phase=angle(C)*180/pi C_real = 99 116116 137 C_imag = 0 -99 0 C_magnitude = 99.0000 116.3486116.3486 137.0000 C_phase = 0 -4.43654.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); Theta=(angle(a)+2*pi*m)/3; rrr=R*exp(i*Theta) rrr =1

12、.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. 画出衰减振荡曲线 及其它的包络线 。t的取值范围是 t=0:pi/50:4*pi; y0=exp(-t/3); y=ex

13、p(-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/2/8,23,1.5 网络资源,USENET新闻组 MATLAB的新闻组是comp.soft-sys.MATLAB。浏览器指向 htt

14、p:/ http:/ 网络上的工具箱 http:/ http:/ 网络资源(续),BBS 哈尔滨工业大学bbs: telnet:/ 上海交通大学bbs: telnet:/ 清华大学bbs mathtools www服务 http:/ http:/ Matlab 大观园:http:/www.matlab-,2019/2/8,25,第2章 基本语法,2.1 变量及其赋值 2.2 矩阵的初等运算 2.3 元素群运算 2.4 逻辑判断及流程控制 2.5 基本绘图方法 2.6 M文件及程序调试,2019/2/8,26,2.1 变量及其赋值,2.1.1 标识符与数标识符是标识变量名、常量名、函数名、文件名

15、的字符串的总称。1、标识符第1个字符必须是字母。 2、长度不超过63个。3、区分大小写。(即大小写敏感!)4、变量中不能含有标点符号。可含有数字和下划线。5、变量可直接参与计算。6、变量一般无需事先定义,2019/2/8,27,2.1.1 标识符与数(续),7、特殊变量,2019/2/8,28,2.1.1 标识符与数(续),8、数值显示格式 MATLAB中所有的量为双字长浮点数,显示按下面显示规则: 在缺省情况下,当结果为整数,作为整数显示;当结果为实数,以小数后4位的精度近似显示。如果结果中的有效数字超出了这一范围,以科学计数法显示结果。 format命令改变显示格式,常用的的格式有 lon

16、g (16位) bank(2个十进制位) hex(十六进制) short(缺省) short e(5位加指数) +(符号)long e(16位加指数) rat(有理数近似,即分数) Format 不带参数为恢复缺省格式,2019/2/8,29,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;每行命令后面的分号;表示结果不显示。,2019/2/8,30,2.1.2 矩阵及其

17、元素的赋值(续),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/2/8,31,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,3); ones(2,3); ones(3,2); eye(3); eye(3

18、,3); eye(3,4); eye(4,3);,2019/2/8,32,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.0 logspace(a,b,n) %在a和b之间对数分布产生n个点的值 如:f=l

19、ogspace(0,1,5) 则 f=1.0000 1.7783 3.1623 5.6234 10.0000,2019/2/8,33,2.1.2 矩阵及其元素的赋值(续),矩阵中的元素(用圆括号中数字来注明) 1. A( i, j ) 表示第i 行,第j列元素。 2. A( i ) 表示第i个元素。矩阵中元素的排序如右所示3. A( i, j)=常量,表示给A中元素赋值。当下标超出原矩阵的尺寸,则自动扩展行列并补零。,2019/2/8,34,2.1.2 矩阵及其元素的赋值(续),4. A( : , j ) 表示A阵中第j 列所有元素。 5. A( i , : ) 表示A阵中第i 行所有元素。

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

21、共轭转置。 B=conj(Z)表示共轭。如: Z=1+2i,3-4j 则: B=Z 有 B= 1-2i3+4jB=conj(Z) 有 B= 1-2i,3+4j,2019/2/8,37,2.1.3 复数,B=conj(Z)表示转置。 B=Z. 表示非共轭复数转置。 如: Z=1+2i,3-4j 则: B=conj(Z) 有 B= 1+2i3-4jB= Z. 有 B= 1+2i3-4j,2019/2/8,38,2.1.4 变量的查询,存储,提取,变量的查询 who 或 whos 变量的存储 save 文件名.mat 变量列表 如:save sar a b c 变量中间用空格隔开,不能加逗号。 变量

22、的提取 load 文件名 变量的清除 clear 变量列表 清除所有变量 clear all,2019/2/8,39,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的,单位方差正态分布随机矩阵 F= magic(m) 魔方矩阵,2019/2/8,40,G= linspace(a,b,n) 线性分隔,a,

23、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 9B=diag(A) 则: B=1;5;9;,2019/2/8,41,2.2 矩阵的初等运算,2.2.1 矩阵的加减乘除 1、+,-,*,/, 2、点乘:.* 右除:./ 左除:. C=A+B; C=A-B C=A*B 注意:矩阵 必须相匹配X=AB 表示AX=B X=A-1B 即 X=inv(A)*BX=A/B 表示X

24、B=A X=AB-1 即 X=A*inv(B) m,n=size(A) 计算矩阵A的行列大小 K=length(A) 计算矩阵A的行列大小中最大的数,2019/2/8,42,2.2.1 矩阵的加减乘除,点乘、点除 C=A.*B 对应元素间相乘。,2019/2/8,43,C=A./B 对应元素间相除。 C=A.B A./B=b.A,2019/2/8,44,2.2.2 矩阵除法及线性方程组的解,方阵的行列式B=det(A) 即B=|A| 方阵的求逆B=inv(A) 即B= A-1 条件|A|0 方阵的伪逆矩阵B=pinv(A) 条件|A|=0 方阵的伴随矩阵B=inv(A)*det(A) 即B=

25、A-1 |A|,2019/2/8,45,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=A2C=A .2C=A (-2)=inv(A)2C=A .(-2),2019/2/8,47,2.2.4 矩阵结构形式的提取与变换,B=fliplr(A) %将A矩阵左右翻转 B=flipud(A) %将A矩阵上下翻转 B=reshape(A,m,n) %将A阵重组为mxn矩阵 B=rot90(A) %将A矩阵逆

26、时针翻转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/2/8,49,2.3 元素群运算,2.3.1 数组及其赋值 1、t=初值:步长:终值;如t=0:0.1:1 tt=10:-1:1 2、t=linspace(初值,终值,点数)如:tr=linspace(0, 2*pi, 9) 3、t=logspace(初值,终值,点数)如:tp=logspace(0, 1, 11),2019/2/8,50

27、,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/2/8,51,2.3.3 元素群的函数,MATLAB中exp、sprt、sin、cos等命令可以直接使用在矩阵上,这种运算只是定义在矩阵的单个元素上,即分别对矩阵的每个元素进行运算。MATLAB中也提供了基本的三角函数。 注意 x0 fix=floor x0 fix=ceil,2019/2/8,52,2.

28、3.3 元素群的函数,2019/2/8,53,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/2/8,54,2.4.1 关系操作符,矩阵查找和排序 子矩阵的查找使用find命令完成,它返回关系表达式为真的下标。例如: a=10:20; find(a15)

29、ans =7 8 9 10 11 矩阵的排序使用sort函数,它将矩阵按照升序排列。,2019/2/8,55,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/2/8,56,2.4.3 其他关系与逻辑函数,xor(x,y)异或运算。x或y非零(真)返回1,x和y都是零(假)或都是非零(真)返回0。 any(x)如果在一个向量x中,有元素非零,返回1;矩阵

30、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 %利用“单下标“定位赋值 ii,jj=find(R=111); %利用find获得符合关系等式条件的元素“双下标“ disp(ii),disp(jj),【例】关系运算运用之

31、一:求近似极限,修补图形缺口。 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(yy),title(正确图形) Warning: Divide by zero.,2019/2/8,60,【例】逻辑操作应用之一:逐段解析函数的计算和表现

32、。本例演示削顶整流正弦半波的计算和图形绘制。,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/2/8,62,【例】写出生成下图所示波形的MATLAB脚本文件M文件。图中虚线为正弦波,要求它的负半波被置零,且在 处被削顶。,t=linspace(0,3*pi,500);

33、 y=sin(t); z1=(t2*pi).*y; w=(tpi/3,2019/2/8,64,2.4.4 流程控制语句,脚本 对于简单问题,使用直接输入命令简单有效;对稍复杂和多次重复的应用,直接输入命令比较麻烦。MATLAB提供了逻辑解决方案,它允许用户把多个命令放在一个简单的文本文件中,如同在MATLAB中键入命令一般,这种文件称为脚本文件,由于脚本文件以m为扩展名,它常称为M文件。脚本文件为文本形式的,对跨平台处理十分有利。 使用脚本文件,可以把命令保存在磁盘上,便于以后的访问;同时对使用大的数组也带来的方便;增加注释可以为脚本中的命令作文挡以免以后忘记。,2019/2/8,65,2.4

34、.4 流程控制语句,为了便于应用,MATLAB提供了一些流程控制的命令。这些命令对脚本编写带来了一些方便,但是需要注意的是,尽量不要使用这些流程控制命令,尤其是循环控制命令。 条件选择语句:If 语句 很多情况下,命令的序列必须根据关系的检验有条件的执行,它由if-else-end结构提供。它的结构如下: if expression1commands1 elseif expression2commands2 elseif elsecommands end,2019/2/8,66,2.4.4 流程控制语句,在执行过程中,MATLAB依次检查各个表达式,只执行第一个表达式为真的命令串,接下来的关系

35、表达式不检验,跳过其余的if-else-end结构,而且,最后的else命令可有可无。 Elseif和else语句都是可选的,只有if和end语句是必须的。,2019/2/8,67,求,2019/2/8,68,2.4.4 流程控制语句,for循环(一般用于循环次数已知的情况)for循环允许一组命令以固定的次数重复,它的一般形式是 for x=arraycommand end for 和end之间的命令串按数组array的每一列执行一次,直到n次后终止。 如:for j=1:2:10y=j+j.2;end,2019/2/8,69,2.4.4 流程控制语句,for循环内部接受任何有效的MATLAB

36、数组; for循环可以嵌套; 只要有矩阵形式可以解决的问题,不要使用for循环。使用for循环的算法执行很慢,一个好的MATLAB算法不应当出现循环语句。Tic/toc 循环可以使用break跳出,但只跳出所在的循环,不跳出整个嵌套结构。 循环变量可以是一个数组,如:X= 11,2,3;-44 ,54,60 for A=X Y=A(1)+A(2) end; Y,2019/2/8,70,2.4.4 流程控制语句,while循环 与for循环以固定的次数求一组指令相反,while循环以不定的次数求一组语句的值。While循环的一般形式为: while expressioncommonds end

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

38、。,n=100;a=ones(1,n); for i=3:na(i)=a(i-1)+a(i-2);if a(i)=10000a(i)break; end; end i ans = 10946 i = 21,2019/2/8,74,2.4.4 流程控制语句,Switch 语句 是一种均衡实现的多分支语句。 Switch expression Case 值1commands1 Case 值2 commands2 OtherwisecommandsN End 如果一个条件满足,在执行完语句体后就到END,2019/2/8,75,学生的成绩管理,用来演示switch结构的应用。,clear; for

39、i=1:10ai=89+i;bi=79+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:5switch S(i).Markscase 100 S(i).Rank=满分; case a S(i).Rank= 优秀; case b S(i).Rank= 良好; case c S(i).Rank= 及格; otherwise S(i).Rank

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

41、(text) %给X轴加上说明 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=

42、sin(t); legend(y=sin(t); gtext(y=sin(t),2019/2/8,80,2.5.2 线型、点型和颜色,plot(x,y,r:) 后面是颜色和线型,2019/2/8,81,x1=0:0.2:3*pi;y1=repmat(1,size(x1) ;x2=0:0.2:3*pi;y2=repmat(2,size(x2) ; x3=0:0.2:3*pi;y3=repmat(3,size(x3) ;x4=0:0.2:3*pi;y4=repmat(4,size(x4) ; x5=0:0.2:3*pi;y5=repmat(5,size(x5) ;x6=0:0.2:3*pi;y6=

43、repmat(6,size(x6) ; x7=0:0.2:3*pi;y7=repmat(7,size(x7);x8=0:0.2:3*pi;y8=repmat(8,size(x8); x9=0:0.2:3*pi;y9=repmat(9,size(x9) ;x10=0:0.2:3*pi;y10=repmat(10,size(x10) ; plot(x1,y1,o,x2,y2,*,x3,y3,x,x4,y4,+,x5,y5,:,x6,y6,-,. x7,y7,-.,x8,y8,.,x9,y9,x10,y10);grid on,2019/2/8,82,2.5.3 多条曲线的绘制,1、plot(x1,y

44、1,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=sin(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,

45、0.4,y1=sin(t); text(2,0,y2=cos(t); legend(y1=sin(t),y2=cos(t);,2019/2/8,84,2.5.4 屏幕控制与其他2维绘图,1. figure %打开图形窗口 2. figure(n) %打开指定图形窗口 3. close %关闭当前图形窗口 4. close all %关闭所有图形窗口 5. close(n) %关闭指定图形窗口 6. clf %清除窗口内所有内容,2019/2/8,85,2.5.4 屏幕控制与其他2维绘图(续),subplot(m,n,p) %图形分为m x n个子图,并指定第p个。排号从左到右,从上到下。 st

46、em(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*); 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);,

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

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报