版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MATLAB及在控制系统课程中的应用2021年12月20日2022/9/251参考书目1、Matlab及在电子信息课程中的应用第二版 陈怀琛 电子工业出版社 2004年1月2、控制系统仿真与计算机辅助设计 薛定宇东北大学 机械工业出版社 2005年1月3、控制系统数字仿真与CAD (第二版) 张晓华哈尔滨工业大学机械工业出版社 2006年5月4、控制系统的数字仿真与计算机辅助设计 钱积新等 化学工业出版社 2003年5月5、基于MATLAB的系统分析与设计控制系统 楼顺天等 西安电子科技大学出版社6、MATLAB6.X 教程7、MATLAB与控制系统仿真实践 定价:34 元 赵广元 书号:97
2、8-7-81124-787-9 北京航空航天大学出版社2022/9/252目 录第1章 MATLAB 语言概述第2章 根本语法第3章 MATLAB 的开发环境和工具第4章 MATLAB 的其他函数库第5章 MATLAB的SIMULINK仿真第6章 MATLAB在自动控制原理中应用2022/9/253第1章 MATLAB语言概述1.1 MATLAB语言的开展1.2 MATLAB语言的特点1.3 MATLAB的工作环境 1.3.1 命令窗 1.3.2 图形窗 1.3.3 文本编辑窗1.4 演示程序1.5 网络资源2022/9/2541.1 MATLAB语言的开展1.1.1 MATLAB 概述 MA
3、TLAB是集数值计算、符号运算及图形处理等强大功能于一体的科学计算语言,是一种交互式的以矩阵为根底的系统计算平台,它用于科学和工程的计算与可视化。它的优点在于快速开发计算方法,而不在于计算速度。 MATLAB已成为一门高校必修的课程,也是最为普遍的计算工具之一。2022/9/2551.1 MATLAB语言的开展(续)1.1.2 Matlab的开展 MATLAB名字由MATrix和 LABoratory 两词的前三个字母组合而成。那是20世纪七十年代,时任美国新墨西哥大学计算机科学系主任的Cleve Moler出于减轻学生编程负担的动机,为学生设计了一组调用LINPACK和EISPACK矩阵软件
4、工具包库程序的的“通俗易用的接口,此即用FORTRAN编写的萌芽状态的MATLAB。1984年由Little、Moler、Steve Bangert合作成立MathWorks公司,并把MATLAB正式推向市场。从这时起,MATLAB的内核采用C语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。2022/9/2561997年仲春,MATLAB5.0版问世,紧接着是5.1、5.2,以及和1999年春的5.3版。现今的MATLAB拥有更丰富的数据类型和结构、更友善的面向对象、更加快速精良的图形可视、更广博的数学和数据分析资源、更多的应用开发工具。2000年末又推出6.0版本。无论在界面的设
5、计上还是在内容上较以前版本都有很大的进展。2022/9/2571.1 MATLAB语言的开展(续)1.1.3 Matlab的版本演化Matlab 1.0Pc matlab-matlab 386Matlab3.5+simulinkMatlab 4.0:simlink内嵌1992Matlab 5.0 :全面的面向对象Matlab 5.15.3 1999Matlab 6.0 2000Matlab 6.5:购并了MATRIXxMatlab 7.0: 20042022/9/2581.2 MATLAB语言的特点友好的工作平台和编程环境简单易用的程序语言强大的科学计算及数据处理能力出色的图形处理功能应用广泛
6、的模块集和工具箱实用的程序接口和发布平台模块化的设计和系统级的仿真2022/9/2591.3 MATLAB的工作环境1.3.1 命令窗(Command Window) 单行命令执行方式 执行结果直接显示1.3.2 图形窗(Figure Window) 用图形方式表示计算结果1.3.3 文本编辑窗(File Editor) 多行命令组成语言组,可以文件方式存盘下面就具体看一下MATLAB 的工作环境演示。2022/9/25101.4 演示程序在MATLAB的命令窗中键入 demo或demos2022/9/2511%pend.mplot(-0.2,0.2,0;0,color,y,linestyle
7、,-,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,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(
8、theta);y=-l*cos(theta); set(head,xdata,x,ydata,y); set(body,xdata,0;x,ydata,0;y); drawnow;end2022/9/2512局部命令的演示例1.求 的算术运算结果。(12+2*(7-4)/32 ans = 2 例2.简单矩阵 的输入步骤。A = 1,2,3; 4,5,6; 7,8,9 A = 1 2 3 4 5 6 7 8 92022/9/2513例3. 矩阵的分行输入。A=1,2,34,5,67,8,9 A = 1 2 3 4 5 6 7 8 9 例4. 指令的续行输入S=11/2+1/31/4+1/51/6
9、+1/7 -1/8 S = 0.63452022/9/2514例5. 复数 表达,及计算 。1z1= 3 + 4i z1 = 3.0000 + 4.0000i 2z2 = 1 + 2 * iz3=2*exp(i*pi/6)z=z1*z2/z3 z2 = 1.0000 + 2.0000iz3 = 1.7321 + 1.0000iz = 0.3349 + 5.5801i 2022/9/2515例6. 复数矩阵的生成及运算A=1,3;2,4-5,8;6,9*iB=1+5i,2+6i;3+8*i,4+9*i C=A*B A =1.0000 - 5.0000i 3.0000 - 8.0000i 2.00
10、00 - 6.0000i 4.0000 - 9.0000iB = 1.0000 + 5.0000i 2.0000 + 6.0000i 3.0000 + 8.0000i 4.0000 + 9.0000iC = 1.0e+002 * 0.9900 1.1600 - 0.0900i 1.1600 + 0.0900i 1.3700 2022/9/2516例7 . 求上例复数矩阵C的实部、虚部、模和相角。C_real=real(C)C_imag=imag(C)C_magnitude=abs(C)C_phase=angle(C)*180/pi C_real = 99 116 116 137C_imag =
11、 0 -9 9 0C_magnitude = 99.0000 116.3486 116.3486 137.0000C_phase = 0 -4.4365 4.4365 0 2022/9/2517例8. 用MATLAB计算 能得到 2 吗?1a=-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.0000 + 1.7321i -2.0000 + 0.0000i 1.0000 - 1.7321i 2022/9/251
12、83图形表示t=0:pi/20:2*pi;x=R*sin(t);y=R*cos(t);plot(x,y,b:),gridhold onplot(rrr(1),.,MarkerSize,30,Color,r)plot(rrr(2,3),o,MarkerSize,15,Color,b)axis(-3,3,-3,3),axis squarehold off 2022/9/2519例9. 画出衰减振荡曲线 及其它的包络线 。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)202
13、2/9/2520例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) 2022/9/25211.5 网络资源USENET新闻组MATLAB的新闻组是comp.soft-sys.MATLAB。浏览器指向 :/ :/网络上的工具箱 :/ 2022/9/25221.5 网络资源(续)BBS哈尔滨工业大学bbs:
14、telnet:/上海交通大学bbs: telnet:/清华大学bbs mathtoolswww效劳 :/ :/Matlab 大观园: 2022/9/2523第2章 根本语法2.1 变量及其赋值2.2 矩阵的初等运算2.3 元素群运算2.4 逻辑判断及流程控制2.5 根本绘图方法2.6 M文件及程序调试2022/9/25242.1 变量及其赋值2.1.1 标识符与数 标识符是标识变量名、常量名、函数名、文件名的字符串的总称。 1、表示符第1个字符必须是字母。 2、长度不超过31个。 3、区分大小写。 4、变量中不能含有标点符号。 5、变量可直接参与计算。 6、变量一般无需事先定义2022/9/2
15、5252.1.1 标识符与数(续)7、特殊变量2022/9/25262.1.1 标识符与数(续)8、数值显示格式MATLAB中所有的量为双字长浮点数,显示按下面显示规那么:在缺省情况下,当结果为整数,作为整数显示;当结果为实数,以小数后4位的精度近似显示。 如果结果中的有效数字超出了这一范围,以科学计数法显示结果。format命令改变显示格式,常用的的格式有long (16位) bank(2个十进制位) hex(十六进制)short(缺省) short e(5位加指数) +(符号) long e(16位加指数) rat(有理数近似)2022/9/25272.1.2 矩阵及其元素的赋值矩阵获取格
16、式:变量=表达式或数1、直接输入:A=1 2 3;4 5 6;7,8,9 *矩阵用中括号括起。 *元素间用空格隔开,或用逗号隔开。 *每行用分号;号表示回车。2、行向量 B=1 2 3 4 53、列向量 C=1;2;3;4;5; 每行命令后面的分号;表示结果不显示。2022/9/25282.1.2 矩阵及其元素的赋值(续)4、元素可用表达式表示 D=-1.3 sqrt(3) (1+2+3)/5+15、用语句生成 行向量 E=from:step:to 即E=开始数:步长:结束数 E=1:2:10 得E=1 3 5 7 96、矩阵连接 B=a b V=a;b2022/9/25292.1.2 矩阵及
17、其元素的赋值(续)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,3); eye(3,4); eye(4,3);2022/9/25302.1.2 矩阵及其元素的赋值(续)rand(m,n) %产生均匀分布随机数0,1rand(state,0) %把均匀分布伪随机发生器置为0状态randn(m,n) %产生正态分布随机数 magic(m) %产生魔方数组对高维不
18、适用 %即每行、每列及对角元素之和为(n3+n)/2linspace(a,b,n) %在a和b之间均匀产生n个点的值如:f=linspace(0,1,5) 那么 f=0 0.25 0.5 0.75 1.0logspace(a,b,n) %在a和b之间对数分布产生n个点的值如:f=logspace(0,1,5) 那么 f=1.0000 1.7783 3.1623 5.6234 10.00002022/9/25312.1.2 矩阵及其元素的赋值(续)矩阵中的元素用圆括号中数字来注明1. A( i, j ) 表示第i 行,第j列元素。2. A( i ) 表示第i个元素。 矩阵中元素的排序如右所示3.
19、 A( i, j)=常量,表示给A中元素赋值。 当下标超出原矩阵的尺寸,那么自动扩展行列并补零。2022/9/25322.1.2 矩阵及其元素的赋值(续)4. A( : , j ) 表示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阵中所有元素组成列向量。2022/9/25332.1.3 复数复数的虚部局部用i 或j表示。 如:2+
20、3i ,3-4j复数可直接计算。 如:z=2+3i;3-4j 或 f=z+2+j;3;复数的实部和虚部可分别赋值。但 i和j需先去除。 如:clear i j f=1,3;5,7+2,4;6,8*j2022/9/25342.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+4j2022/9/25352.1.3 复数B=conj(Z)表示转置。B=Z. 表示非共轭复数转置。如: Z=1+2i,3-4j那么: B=conj(Z) 有 B= 1+2i 3-4j B= Z.
21、 有 B= 1+2i 3-4j2022/9/25362.1.4 变量的查询,存储,提取变量的查询 who 或 whos变量的存储 save 文件名.mat 变量列表 如:save sar a b c 变量中间用空格隔开,不能加逗号。 变量的提取 load 文件名变量的去除 clear 变量列表去除所有变量 clear all2022/9/25372.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
22、(state,0); %把随机数发生器置0E=randn(m,n) 均值为0的,单位方差正态分布随机矩阵 F= magic(m) 魔方矩阵2022/9/2538G= 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;2022/9/25392.2 矩阵的初等运算2.2.1 矩阵的加减
23、乘除1、+,-,*,/, 2、点乘:.* 右除:./ 左除:.C=A+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的行列大小中最大的数2022/9/25402.2.1 矩阵的加减乘除点乘、点除C=A.*B 对应元素间相乘。2022/9/2541C=A./B 对应元素间相除。C=A.B2022/9/25422.2.2 矩阵除法及线性方程组的解方阵的行列式 B=det(A) 即B=|A
24、|方阵的求逆 B=inv(A) 即B= A-1 条件|A|0方阵的伪逆矩阵 B=pinv(A) 条件|A|=0方阵的伴随矩阵 B=inv(A)*det(A) 即B= A-1 |A|2022/9/25432.2.3 矩阵的乘方和幂次函数1、矩阵乘方2、.元素对元素的乘方C=An 表示A阵自乘n次。C=A(-n) 表示A阵的逆矩阵自乘n次。C=A.n 表示A阵中每个元素自乘n次。C=A.-n 表示A阵中每个元素自乘n次后的逆阵。2022/9/2544如 C=A2C=A .2C=A (-2)=inv(A)2C=A .(-2)2022/9/25452.2.4 矩阵结构形式的提取与变换B=fliplr(
25、A) %将A矩阵左右翻转 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矩阵的右上三角局部2022/9/2546如:B=fliplr(A)B=flipud(A)B=rot90(A)B=tril(A)2022/9/25472.3 元素群运算2.3.1 数组及其赋值1、t=初值:步长:终值; 如t=0:0.1:1 tt=10:-1:12、t=linspace(初值,终值,点数
26、 如:tr=linspace(0, 2*pi, 9)3、t=logspace(初值,终值,点数 如:tp=logspace(0, 1, 11)2022/9/25482.3.2 元素群的四那么运算表示对矩阵中每个元素进行运算 如 X=1 2 3; Y=4 5 6Z=X.*Y Z=4 10 18Z=X.Y Z=4 2.5 2Z=X.Y Z=1 32 729 Z=X.N N=2 Z=1 4 9Z=2.X Y Z=2 4 8 16 32 642022/9/25492.3.3 元素群的函数等命令可以直接MATLAB中exp、sprt、sin、cos使用在矩阵上,这种运算只是定义在矩阵的单个元素上,即分别
27、对矩阵的每个元素进行运算。MATLAB中也提供了根本的三角函数。 注意其中的取整函数名含义abs绝对值或者复数模sqrt平方根real实部imag虚部conj复数共轭round4舍5入到整数fix舍入到最接近0的整数floor舍入到最接近-的整数ceil舍入到最接近的整数2022/9/25502.3.3 元素群的函数函数名含义sign符号函数rem留数sin正弦cos余弦tan正切asin反正弦acos反余弦atan反正切atan2第四象限反正切函数名含义sinh双曲正弦cosh双曲余弦tanh双曲正切exp自然指数log自然对数log10以10为底的对数bessel贝赛尔函数gamma伽吗函
28、数rat有理逼近2022/9/25512.4 逻辑判断及流程控制2.4.1 关系操作符MATLAB常用的关系操作符有:(小于)、(大于)、=(大于或等于)、 = =(等于)、 =(不等于)。MATLAB的关系操作符可以用来比较两个大小相同的数组,或者比较一个数组和一个标量。在与标量比较时,结果和数组大小一样。a=1:9;b=a4b = 0 0 0 0 1 1 1 1 1c=a(a4)c = 5 6 7 8 92022/9/25522.4.1 关系操作符矩阵查找和排序子矩阵的查找使用find命令完成,它返回关系表达式为真的下标。例如:a=10:20;find(a15)ans = 7 8 9 10
29、 11矩阵的排序使用sort函数,它将矩阵按照升序排列。2022/9/25532.4.2 逻辑运算逻辑操作符定义了一种与或非的关系表达式。MATLAB的逻辑操作符有&(与)、|(或)、(非)、xor(异或。例如:c=(a4)c =1 1 1 1 0 0 0 0 0c=(a4)&(a7)c =0 0 0 0 1 1 0 0 0C=xor(A,B)2022/9/25542.4.3 其他关系与逻辑函数xor(x,y) 异或运算。x或y非零(真)返回1,x和y都是零(假)或都是非零(真)返回0。any(x) 如果在一个向量x中,任何元素是非零,返回1;矩阵x中的每一列有非零元素,返回1。all(x)
30、如果在一个向量x中,所有元素非零,返回1;矩阵x中的每一列所有元素非零,返回1。2022/9/2555%逻辑函数的运用例如。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)2022/9/2556【例】关系运算运用之一:求近似极限,修补图形缺口。t=
31、-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. 2022/9/25572022/9/2558【例】逻辑操作应用之一:逐段解析函数的计算和表现。本例演示削顶整流正弦半波的计
32、算和图形绘制。t=linspace(0,3*pi,500);y=sin(t); z1=(t2*pi).*y;w=(tpi/3&t7*pi/3&t8*pi/3);w_n=w;z2=w*sin(pi/3)+w_n.*z1;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) 2022/9/25592022/9/2560【例】写出生成以下图所示波形的MATLAB脚本文件M文件。图中虚线为正弦波,要求它的负
33、半波被置零,且在 处被削顶。 2022/9/2561t=linspace(0,3*pi,500);y=sin(t); z1=(t2*pi).*y;w=(tpi/3&t7*pi/3&t=10 y=x2+3;elseif x=0 y=x3+4*x;else y=x5+x;end yx=input(x=);if x=10 y=x2+3;else if x=0 y=x3+4*x; else y=x5+x; endendy2022/9/25662.4.4 流程控制语句 for循环for循环允许一组命令以固定的次数重复,它的一般形式是for x=array commandendfor 和end之间的命令串
34、按数组array的每一列执行一次,直到n次后终止。如:for j=1:2:10 y=j+j.2; end2022/9/25672.4.4 流程控制语句for循环不能使用内部重新赋值循环变量而终止;for循环内部接受任何有效的MATLAB数组;for循环可以嵌套;只要有矩阵形式可以解决的问题,不要使用for循环。使用for循环的算法执行很慢,一个好的MATLAB算法不应当出现循环语句。Tic/toc循环可以使用break跳出,但只跳出所在的循环,不跳出整个嵌套结构。2022/9/25682.4.4 流程控制语句while循环与for循环以固定的次数求一组指令相反,while循环以不定的次数求一组
35、语句的值。While循环的一般形式为:while expression commondsend只要表达式expression里的所有元素为真,就执行命令串commands。通常表达式求值给一个标量值,单数组值也同样有效。2022/9/2569求y=0;for x=1:100 y=y+x;endyN=input(N=);y=0;for i=1:N for j=1:N y=y+1/(i+j); endendyN=input(N=);y=0;i=1;while i=N j=1; while j=N y=y+1/(i+j); j=j+1; end i=i+1;endy2022/9/2570【例】Fib
36、onacci数组的元素满足Fibonacci 规那么: , ;且 。现要求该数组中第一个大于10000的元素a(1)=1; a(2)=1;i=2;while a(i)=10000 a(i) break; end;Endi ans = 10946i = 21 2022/9/25722.4.4 流程控制语句Switch 语句是一种均衡实现的多分支语句。Switch expressionCase 值1 commands1Case 值2 commands2 Otherwise commandsNend2022/9/2573学生的成绩管理,用来演示switch结构的应用。 clear;for i=1:1
37、0 ai=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);2022/9/2574for 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).R
38、ank=不及格; endenddisp(学生姓名 , 得分 , 等级); disp( )for i=1:5; disp(S(i).Name,blanks(6),num2str(S(i).Marks),blanks(6),S(i).Rank);end; 结果:学生姓名 得分 等级 Jack 72 及格 Marry 83 良好 Peter 56 不及格 Rose 94 优秀 Tom 100 满分 2022/9/25752.5 根本绘图方法2.5.1 直角坐标中的两维曲线plot(y) 以y的下标作为x坐标,以y值作为y坐标。plot(x,y) 数组x和y的长度应匹配。每次绘制将去除以前的图形。20
39、22/9/25762.5.1 直角坐标中的两维曲线图形的标注和图例1、title(text) %给图形加上标题2、xlabel(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 %关闭图例2022/9/2577如:作y=sin(t)的二维图形t=linspace(0,3*pi,200);y=sin(t);plot(
40、t,y);title(y=sin(t);xlabel(t/s);ylabel(y=sin(t);text(3,0.4,y=sin(t);legend(y=sin(t);gtext(y=sin(t)2022/9/25782.5.2 线型、点型和颜色plot(x,y,r:) 后面是颜色和线型标识符颜色标识符线型标识符线型yYellow 黄.点S正方形标记mMagenta 品红o圆圈D菱形标记cCyan 青xX号朝上三角形r Red 红+号V朝下三角形gGreen 绿-实线朝右三角形bBlue 蓝*星号1error( VAL must be a scalar. )end这里,如果变量val 不是一个
41、标量,error 显示消息字符串,把控制权返回给命令窗口和键盘。2022/9/25112M函数文件例如。circle.mfunction sa = circle(r,s)%CIRCLE plot a circle of radii r in the line specified by s.%r指定半径的数值%s指定线色的字符串%sa圆面积% circle(r)利用蓝实线画半径为 r 的圆周线.% circle(r,s)利用串 s 指定的线色画半径为 r 的圆周线.% sa=circle(r)计算圆面积,并画半径为 r 的蓝色圆面.% sa=circle(r,s)计算圆面积,并画半径为 r 的
42、s 色圆面.% 编写于2006年4月7日,修改于2006年6月27日。2022/9/25113if nargin2 error(输入宗量太多。);end;if nargin=1 s=b;end;clf;t=0:pi/100:2*pi;x=r*exp(i*t);if nargout=0 plot(x,s);else sa=pi*r*r; fill(real(x),imag(x),s)endaxis(square) 2022/9/25114第3章 MATLAB 的开发环境和工具 3.1 MATLAB与其它软件的接口关系3.2 MATLAB的文件管理系统3.3 MATLAB 6.x的开发环境2022
43、/9/251153.1 MATLAB与其它软件的接口关系3.1.1 与磁盘操作系统的接口关系1、变量的存储和下载 如:save aa a b c %将内存变量a, b, c内容以文件aa.mat的方式存储在磁盘中。 或save aa a b c ascii %以ASCII码格式存储2022/9/251163.1.1 与磁盘操作系统的接口关系 load aa 表示将磁盘上存储的aa.mat 数据文件内容取回到工作空间即内存中。 此时内存中的变量与存储时的变量相同。 此时必须注意,原来内存中不能有与提取文件中的变量相同的变量,否那么原来内存中的变量内容将被取代而丧失。2022/9/251173.1
44、.1 与磁盘操作系统的接口关系2、工作日志的记录 diary 命令可以把MATLAB工作过程中的全部屏幕文字和数据以文本方式记录下来,成为一个工作记录。 diary on %默认文件名diary.txt diary bbb %文件名为bbb.txt diary off %结束记录2022/9/251183.1.1 与磁盘操作系统的接口关系3、日期和时间命令 t0=clock; %提取年月日时分秒数据并求差值。 y=inv(rand(100,100); etime(clock,t0) t=cputime; %以开机时间为基准 y=inv(rand(100,100); cputime-t tic;
45、 %秒表置零,求经历的时间 y=inv(rand(100,100); toc2022/9/251193.1.1 与磁盘操作系统的接口关系4、不退出MATLAB环境运行其他软件 格式: !命令 2022/9/251203.1.2 与文字处理系统WINWORD 的关系利用剪贴板进行交互文字编辑器的使用Notebook软件工具2022/9/251213.1.3 图形文件的转储可以利用图形窗口中 figure copy来粘贴。可以利用图形窗口File菜单中的导出子菜单Export来选择需要存储的图形文件格式。可以利用图形窗口的工具对图形进行一些相关处理。2022/9/251223.1.4 低层输入输出
46、函数库主要是实现文件内容的相互交换。具体函数可以参考P55页的表3.3如:X,map=imread(aa.bmp,bmp)就是将图象数据读入X中,颜色读入map中。每条命令的使用可以通过HELP查阅。2022/9/251233.2 MATLAB的文件管理系统MATLAB 自身的用户文件格式1、程序文件 .m2、数据文件.mat3、可执行文件.mex4、仿真模型文件.mdl5、仿真文件.s2022/9/251243.2 MATLAB的文件管理系统who(whos)cd(chdir,pwd)dir(ls)typewhatwhichclcedit!echoloadclear/packsavediar
47、y2022/9/251253.3 MATLAB 6.X的开发环境这里主要通过MATLAB 6.0的演示来获得开发环境的了解。1、命令窗口 2、历史命令窗口3、资源目录本 4、当前路径浏览器5、工作空间浏览器 6、帮助浏览器7、数组编辑器 8、程序编辑器要掌握最根本的环境使用。2022/9/25126第4章 MATLAB的其他函数库4.1 数据分析函数库datafun4.2 矩阵的分解与变换matfun4.3 多项式函数库polyfun4.4 函数功能和数值积分函数库funfun4.5 字符串函数库strfun4.6 稀疏矩阵函数库sparfun4.7 图形界面函数库guitools4.8 数据
48、类型函数库datatypes 2022/9/251274.1 数据分析函数库datafuncorrcoef(x)求相关系数cov(x)协方差矩阵cplxpair(x)把向量分类为复共轭对cross(x, y)向量的向量积cumprod(x)列累计积cumsum(x)列累计和del2(A)五点离散拉氏算子diff(x) 计算元素之间差dot(x, y)向量的点积gradient(Z, dx, dy)近似梯度histogram(x)直方图和棒图max(x), max(x, y)最大分量mean(x)均值或列的平均值median(x)列的中值min(x), min(x, y)最小分量prod(x)列
49、元素的积rand(x)均匀分布随机数randn(x)正态分布随机数sort(x)按升序排列std(x)列的标准偏差subspace(A, B)两个子空间之间的夹角sum(x)各列的元素和2022/9/251284.1 数据分析函数库datafun4.1.1 根本的数据分析1. max %求各列最大值min %求各列最小值 mean %求各列平均值std %求各列标准差median %求各列中间元素sum %求各列和trapz %梯形法求积分 diff %求差分sort %排序 2022/9/25129max(A)=0.9501 0.8214 0.9218 0.9355min(A)=0.2311
50、 0.0185 0.1763 0.4057mean(A)=0.6331 0.5006 0.6487 0.7124std(A)=0.2963 0.3197 0.2861 0.2783median(A)=0.6068 0.4565 0.7382 0.8936sum(A)=3.1654 2.5032 3.2437 3.5620trapz(A)=2.2447 1.8998 2.8478 2.9123diff(A)=-0.7190 -0.3056 0.1765 0.5298 0.3757 -0.4380 0.1299 -0.0186 -0.1209 0.8029 -0.1836 -0.5066 0.40
51、53 -0.3767 -0.5619 0.4834sort(A)=0.2311 0.0185 0.1763 0.4057 0.4860 0.4447 0.6154 0.4103 0.6068 0.4565 0.7382 0.8936 0.8913 0.7621 0.7919 0.9169 0.9501 0.8214 0.9218 0.93552022/9/251304.1 数据分析函数库datafun4.1.2 用于场论的数据分析函数1、gradient %求梯度2、del2 %拉普拉斯算子3、cross %求矢量积4、dot %求数量积2022/9/251314.1 数据分析函数库dataf
52、un4.1.3 用于随机数据分析的函数1、rand(m,n)2、randn(m,n)3、hist(x) %画直方图4、hist(x,N) %N等份画直方图2022/9/25132x=rand(1,1000);plot(x)hist(x)2022/9/25133x=randn(1,1000);plot(x)hist(x); hist(x,50);2022/9/251344.1 数据分析函数库datafun4.1.4 用于相关和傅立叶分析的函数1、corrcoef(x,y) %相关系数2、cov(x,y) %协方差 3、conv(x,y) %卷积和多项式相乘4、deconv(x,y) %卷积和多项
53、式相除5、filter(b,a,x) %一维数据滤波6、X=fft(x,N) %快速傅立叶变换7、X=ifft(X) %逆傅立叶变换8、sound(u,s) %向量变为声音9、filter2, conv2,deconv, fft2,ifft2等2022/9/25135x=rand(1,1000);y=randn(1,1000); R= 1.0000 0.0094R=corrcoef(x,y) 0.0094 1.0000 %对角线是自相关系数Z=cov(x,y) Z = 0.0835 0.0026 0.0026 0.8928%对角线是x和y的均方差P=conv(x,y); %卷积 P长度为Mx+
54、Ny-1如 x=1 3 2 1; y=1 2 2;Q ,R=deconv(x,y)那么:Q = 1 1R = 0 0 -2 -12022/9/25136%构造受噪声污染的信号clear; randn(state,0); t=linspace(0,10,512);y=3*sin(5*t)-6*cos(9*t)+5*randn(size(t); plot(t,y) %绘制幅频曲线Y=fft(y);Ts=t(2)-t(1)%时间信号的采样周期Ws=2*pi/Ts;%时间信号的采样频率Wn=Ws/2 %Nyquest频率w=linspace(0,Wn,length(t)/2);%半采样频率中相应的刻度
55、Ya=abs(Y(1:length(t)/2);plot(w,Ya) %绘制局部放大的幅频曲线ii=find(w0找到零点后退出Options为优化迭代所采用的参数选项function y=jszero(t,a,b) y=sin(t).2.*exp(-a.*t)-b.*abs(t); z,fz=fzero(jszero,1.6,0.1,0.5)2022/9/25166quad() 采用递推自适应Simpson法quad(函数名,初值x0,终值xf求定积分quad(fun,a,b,TOL,TRACE,P1,P2,.) tol 控制绝对误差,trace 取非零 将逐点画。 F = inline(1
56、./(x.3-2*x-5); Q = quad(F,0,2);Q = quad(myfun,0,2); function y = myfun(x) y = 1./(x.3-2*x-5);2022/9/25167quadl()采用递推自适应Lobatto法 F = inline(1./(x.3-2*x-5); Q = quadl(F,0,2); Q = quadl(myfun,0,2); function y = myfun(x) y = 1./(x.3-2*x-5); 2022/9/25168ode45采用4,5阶龙格库塔法求解微分方程x,y=ode45(函数名,自变量初值x0,自变量终值xf
57、,因变量初值x0); t,y=ode45(vdp1,0 20,2; 0); plot(t,y(:,1);figure; plot(y(:,1),y(:,2);function yp=vdp1(t,y) r=2; yp(1)=y(2); yp(2)=-r*(y(1).2-1)*y(2)-y(1); yp=yp; % yp=y(2);-r*(y(1).2-1)*y(2)-y(1);2022/9/25169t,y=ode45(vdp2,0, 30,1;0;0;1 )plot(t,y(:,1)function yp=vdp2(t,y) yp(1)=y(2); yp(2)=y(3); yp(3)=y(4
58、); yp(4)=-y(4)-(y(1)2+y(1)*y(3)-(y(1)+1)*y(2)-y(1); yp=yp; %yp=y(2);y(3);y(4);-y(4)-(y(1)2+y(1)*y(3)-(y(1)+1)*y(2)-y(1)2022/9/25170y(1)=x;y(2)=dx/dt;function ydot=DyDt(t,x) mu=2; ydot=x(2);mu*(1-x(1)2)*x(2)-x(1);tt,yy=ode45(DyDt,0,30,1;0);plot(tt,yy(:,1);title(x(t);2022/9/251714.5 字符串函数库strfuneval(s
59、tring) 作为一个MATLAB 命令求字符串的值eval(try,catch)blanks(n) 返回一个n 个零或空格的字符串deblank 去掉字符串中后拖的空格feval 求由字符串给定的函数值findstr 从一个字符串内找出字符串isletter 字母存在时返回真值2022/9/25172isspace 空格字符存在时返回真值isstr 输入是一个字符串,返回真值lasterr 返回上一个所产生MATLAB 错误的字符串strcmp 字符串相同,返回真值strrep 用一个字符串替换另一个字符串strtok 在一个字符串里找出第一个标记2022/9/25173eval的使用P1=
60、0.1;P2=0.5;y=sin(x).2.*exp(-P1*x)-P2*abs(x); x=-10:0.01:10;Y=eval(y);plot(x,Y);grid on2022/9/251744.5 字符串函数库strfun字 符 串 转 换abs字符串到ASCII转换dec2hex十进制数到十六进制字符串转换fprintf把格式化的文本写到文件中或显示屏上hex2dec十六进制字符串转换成十进制数hex2num十六进制字符串转换成IEEE浮点数int2str整数转换成字符串lower字符串转换成小写2022/9/25175num2str数字转换成字符串setstr ASCII转换成字符串
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 少儿电子琴基础教学合同
- PDCA优化急诊预检分诊
- 2025年台州市椒江区招聘中小学教师考试真题
- 《数控机床加工零件》课件-安装壳体本加工步骤(槽和螺纹)的工艺文件编制1
- 2025年安徽省气象部门招聘普通高校招聘真题
- 2026年赤峰市气象系统事业单位人员招聘考试备考试题及答案详解
- 2026年鄂州市劳动保障监查系统事业单位人员招聘考试备考试题及答案详解
- 2026北京对外经济贸易大学非事业编人员招聘2人考试参考题库及答案解析
- 2026年福建泉州丰泽国有投资集团有限公司招聘10人笔试模拟试题及答案解析
- 2026洛阳石化工程建设集团有限责任公司招聘7人考试参考题库及答案解析
- 江苏省2026年中职职教高考文化统考数学试卷及答案
- 26年类器官药敏联合基因检测用药
- 2026年西安建筑科技大学《绿色建筑学报》编辑部招聘(3人)笔试参考题库及答案解析
- 2026年北京市东城区高三二模生物试卷(含答案)
- 2026滁州市轨道交通运营有限公司第一批次校园招聘21人备考题库及完整答案详解一套
- T/CSMTNY 003-2026管输掺氢天然气质量分析与流量计量技术指南
- DB3717∕T 30-2025 芍药鲜切花采后处理技术规程
- 初中地理教师教学能力提升培训
- JJF 1905-2021磁通计校准规范
- GM/T 0001.3-2012祖冲之序列密码算法第3部分:基于祖冲之算法的完整性算法
- 关于规范贸易业务的指导意见
评论
0/150
提交评论