收藏 分享(赏)

matlab简明教程PPT课件.ppt

上传人:Facebook 文档编号:3723144 上传时间:2018-11-16 格式:PPT 页数:84 大小:564KB
下载 相关 举报
matlab简明教程PPT课件.ppt_第1页
第1页 / 共84页
matlab简明教程PPT课件.ppt_第2页
第2页 / 共84页
matlab简明教程PPT课件.ppt_第3页
第3页 / 共84页
matlab简明教程PPT课件.ppt_第4页
第4页 / 共84页
matlab简明教程PPT课件.ppt_第5页
第5页 / 共84页
点击查看更多>>
资源描述

1、1,第一部分 Matlab语言概述,2,Matlab与其它数学软件比较,MATLAB:MATLAB名字是由MATrix和LABoratory两个词的前三个字母组合而成的,意为“矩阵实验室”。是一个高性能的科技计算软件,在数值计算方面独占鳌头,广泛应用于数学计算、建模、仿真和数据分析处理及工程作图。 Maple: 具有无与伦比的符号计算能力。 Mathematica:它拥有强大的数值计算和符号计算能力。 Mathematica和Maple则分居符号计算软件的前两名。 Mathcad:是MathSoft公司在20世纪80年代推出的一个交互式的数学文字软件。和Maple相比,MathCAD的文字处理

2、能力较强。因其提供计算、图形、文字处理的统一环境而深受中学生欢迎。 Origin:技术图形和数据分析软件。数据分析包括数据的排序、调整、计算、统计、频谱变换、曲线拟合等各种完善的数学分析功能。,Matlab语言的特点,简单易学-演算纸式的科学算法语言 Matlab具有丰富的数值计算功能 具有若干功能强大的应用工具箱 具有良好的图视功能 使用方便,具有很好的扩张功能,4,Matlab语言的主要特点,简单易学-演算纸式的科学算法语言,用语言编程如下: include “math.h” main() float a;a=sqrt(5); printf(“a=5.3fn”,a) ,用matlab求解如

3、下: a=sqrt(5)a=2.2361,结果为:a=2.236,fprintf(1,a=%5.3fn,a)a=2.236,5,Matlab语言的主要特点(续),MATLAB具有丰富的数值计算功能。1)包括矩阵各种运算:如:正交变换、三角分解、特征 值、常见的特殊矩阵等。2)包括各种特殊函数:如:贝塞尔函数、勒让德函数、伽 码函数、贝塔函数、椭圆函数等。3)包括各种数学运算功能:如:数值微分、数值积分、插 值、求极值、方程求根、FFT 、常微分方程的数值解 等。,进行数值计算的基本单位是矩阵,而且不需定义数组的维数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷

4、、高效、方便,这是其它高级语言所不能比拟的。,6,Matlab语言的主要特点(续),具有若干功能强大的应用工具箱 Matlab中包括了被称作工具箱(Toolbox)的各类应用问题的求解工具。工具箱实际上是对Matlab进行扩展应用的一系列Matlab函数(称为M文件),它可用来求解各类学科的问题,包括信号处理、图象处理、控制系统辨识、神经网络等。随着Matlab版本的不断升级,其所含的工具箱的功能也越来越丰富,因此,应用范围也越来越广泛,成为涉及数值分析的各类工程师不可不用的工具。,7,Matlab语言的主要特点(续),具有良好的图视功能 、可方便地画出两维和三维图形。 、高级图形处理。如:色

5、彩控制、句柄图形、动画等。 、图形用户界面GUI制作工具,可以制作用户菜单和控件。使用者可以根据自己的需求编写出满意的图形界面。可以直接处理声音和图形文件 、声音文件。如: WAV文件(例:wavread,sound 等)。 、图形文件。如: bmp 、gif 等。,8,Matlab语言的主要特点(续),使用方便,具有很好的扩张功能、使用Matlab语言编写的程序可以直接运行,无需编译。、可以把M文件转变为独立于平台的EXE可 执行文件。、Matlab的应用接口程序API是Matlab提供的 十分重要的组件 ,由 一系列接口指令组成 。用户就可在FORTRAN或C中 ,把Matlab当作计算引

6、擎使用 。,9,图 Matlab 程序界面,10,1)单击“?”图标(html)2) help/using the desktop(html)3) 联机查询指令,help命令 help FunctionName其中,FunctionName为要查询的函数名。4) lookfor指令lookfor 关键词 (如,lookfor fourier),Matlab提供了十分详细的帮助文件(PDF 、HTML文件)。,Matlab联机帮助,Html和pdf文件可从网上下载,如, help sum,SUM Sum of elements. For vectors, SUM(X) is the sum of

7、 the elements of X. For matrices, SUM(X) is a row vector with the sum over each column. ,11,应用演示程序demos,Matlab的演示程序demos给用户提供各种各样的功能演示,运行此程序对了解Matlab/Simulink有很大的帮助。,demos,12,在MATLAB下进行基本数学运算,只需将运算式直接打入提示符(“”)后,并按入Enter键即可。例如: (10*19+2/4-34)/2*3 ans =234.7500 Matlab会将运算结果直接存入一变量ans,代表Matlab运算后的答案,并显

8、示其数值。ans为保留变量,它将永远存放最近一次无赋值变量语句的运算结果。,Matlab基本语法及数据显示格式,13,如果在上述的例子结尾加上”;”,则表达式同样运行,但不在命令窗口显示结果,要得知计算值只须键入该变量名即可。 (10*19+2/4-34)/2*3; ans 234.7500Matlab要求表达式在使用变量以前,一定要先对其进行赋值操作。,Matlab的赋值操作,14,如,有算术表达式: ,其中,p=7.1, x=4.92, k= -1.7。 p=7.1; x=4.92; k=-1.7; 或者, p=7.1; x=4.92; k=-1.7; t=(1/(1+p*x)k ,Mat

9、lab的赋值操作(续),t=440.8779,“=”为赋值符号,15,如果一个指令过长可以在结尾加上“”(代表此行指 令与下一行连续),例如 3*. 6 ans = 18,Matlab的赋值操作(续),16,变量及其命名规则,变量名不可以超过31个字符,超出字符将被忽略 变量名要求以大写或小写字母开头,后面可跟大小写字母,数字或下划线。 字符间不允许有空格 变量对大小写敏感,如,合法变量 junk, junK, F_1,A_b_C_d不合法变量 123,1A, _abc, a#, a b,17,常见的Matlab预定义变量,ans 通用变量名 eps Matlab定义的正的极小值=2.2204

10、e-16,若某个量的绝对值 小于eps,则可以认为这个量为。 pi 内建的值,双精度浮点表示。 Inf 值NaN 不定式(Not a Number),通常由0/0,Inf/Inf 及其它可能 的运算得出。 i 或 j 若i或j不被改写,则它们表示纯虚数单位i=j=-1 Nargin 函数输入参数个数 Nargout 函数输出参数个数,1/0 Warning:Divide by zeroans=Inf,18,变量管理,在Matlab运行期间,可随时通过输入变量名或从表达式中引用变量名来访问变量的当前数值。Clear函数清除内存中所有变量,格式为: clear 在Workspace窗口中可显示所有

11、 的变量列表。同样的功能还可用 Whos命令来实现。 whos,19, whosName Size Bytes Classans 1x1 8 double arrayx 10x10 800 double arrayy 10x10 800 double arrayz 10x10 800 double array Grand total is 301 elements using 2408 bytes,变量长度,变量存储字节数,变量类型,变量管理(续),20,MATLAB利用了箭头可以将所下过的指令叫回来重覆使用。按下则前一次指令重新出现,之后再按Enter键(在此之前,可修改命令行),即再执行前

12、一次的指令。而键的功能则是往后执行指令。完成同样功能也可用“p”。“c”(ctrl和c同时按下)用于终止程序或函数的执行。,命令的重复键入及程序或函数的终止,21,第二部分 Matlab语言基础,22,向量的创建(vectors),1、行向量f=a x b 或 f=a,x,b,其中a,x,b,可以是变量、数值、表达式或字符串。,2、列向量f=a;x;b; 或 f=a,x,b,3、利用冒号创建向量(通常用来创建时间向量)x=s:d:f其中,s=起始值 d=增量(步长) f=终值,用 将元素置于其中,t=0:5t=0 1 2 3 4 5,23,向量的创建,、用linspace函数创建向量,已知指定

13、范围(s,f)和期望的数值个数n。格式如下:x=linspace(s,f,n)等同于:x=s s+d d+2d s+(n-1)d其中,d=(f-s)/(n-1),当n省略时,默认值为100,常用于绘图时坐标轴向量的定义,24,要显示前5个值:,要显示后5个值:,设x=1:1:10, 试进行如下操作:,访问向量的第三个元素:,求向量的长度:,length(x),向量元素的访问,25,矩阵的创建,1、一般矩阵的创建2、标准矩阵的创建 1)ones(n) %产生全部元素均为1的nn阶矩阵; 2)ones(r,c) %产生全部元素为1的rc阶矩阵; 3)zeros(n)和zeros(r,c) 4)ey

14、e(n) %产生一对角线全为1的n阶单位矩阵,A=a1,a2,a3;b1,b2,b3;c1,c2,c3,ai, bi, ci可以是变量、数值、表达式、字符串。,26,矩阵的创建,3、用repmat函数和meshgrid函数创建矩阵,Repmat函数调用格式为:repmat(x,r,c) % 通过复制x,产生rc的矩阵,27,矩阵的创建,meshgrid的调用格式为:u,v=meshgrid(s,t) %通过复制向量s,t,生成两个矩阵u, v。,s,t为两个行向量。相当于,u=repmat(s,length(t),1)v=repmat(t,1,length(s),这个函数在画3D图时非常有用,

15、28,矩阵元素的访问及操作,定义矩阵为A=1 2 3;4 5 6;7 8 9,顺次执行以下操作:,将第3行,第3列的元素置0:,将第2列元素除以2:,把第3行加到第1行(第3行保持 不变):,删除第2行:,A(3,3)=0,A(:,2)=A(:,2)/2,A(1,:)=A(3,:)+A(1,:),A(2,:)= ,A =8 5 37 4 0,29,矩阵的数学运算,A,B为矩阵,c为标量。,30,对同阶矩阵中对应元素进行直接的算术运算。A.*B A,B中只要有一个标 A./B 量,就等同A*B,A/B。A.c : “.”不能省。,若A为方阵,A*A*A=A3A.3,如,A=1 2;3 4 A3=

16、37 54 ;81 118 A.3=1 8;27 64,点运算,若求x5,则必须写成x.5.,31,左除和右除,AB就是由高斯消元法求解线性方程组AX=B的解。 相当于A的逆左乘B: A-1*B。,左除:B,右除:A/B 相当于A左乘B的逆。 A*inv(B),inv(B)与B-1等同,32,例,对于下列线性方程组AX=b,试求取未知的参数向量X。,分析:最小二乘法是系统辨识领域的经典辨识分法,一般用于大规模数据的系统参数辨识。可求得:X=(ATA)-1 ATb,X=inv(A*A)*A*b 方法二:直接求逆 X=inv(A)*b 方法三:左除 ,X=Ab,方法一:最小二乘法,A是方阵,三种求

17、解结果相同,若为长方阵,采用方法二不行,只能用方法一或方法三。,其算法就是最小二乘法,33,在matlab中,多项式也是用向量表示。按递减顺序依次输入多项式的系数即可。,如有下列多项式:s4+3s3-15s2-2s+9 在matlab中输入:x=1 3 15 2 9;,如果多项式中有为的系数,也必须把写入。,求多项式的根:roots(x),或输入 roots(1 3 15 2 9),ans =-5.57452.5836-0.79510.7860,多项式(Polynomials),34,矩阵的逻辑运算,35,矩阵的关系运算,关系运算是针对两个矩阵的对应元素的,若关系满足,则该元素置为,否则为。,

18、注意区别赋值符号“”与等于关系符号“”,关系运算主要用于程序流程控制,36,字符串(文字),字符串:将数字,字母和一些特殊的字符放在单引号内。它的创建、存贮和操作与向量、矩阵类似。字符串中的每一个字符在向量或矩阵中占据一个元素的位置。格式如下:s=testing123 或, s=testing123,37,M文件和M函数,1、什么是M 文件(M程序文件,M程序) ?2、为什么要用M文件?,M文件也称为脚本文件(script file), 是一个可以输入Matlab命令的简单的文本文件,所有的M文件名的后缀均为“.m”。,对于简单问题,可以直接在 command Windows窗口中输入命令,快

19、速而且有效。但随着命令的增加,或者需要改变某一变量值进行重复试验时,一遍一遍地从命令窗口中输入指令,将变得非常不方便(不能修改,也不能保存),在这种情况下,M文件非常有用而且必要。,38,1)选择 File / New / M-file 将打开一个文本编辑窗口,如图所示:,保存M文件:File / save 打开M文件:File /open,怎样建立、保存和打开M文件?,2)在command window中输入 edit命令。,Matlab文本编辑器,进入文本编辑器的方法有两种:,39,例:c3 = c1 * c2,输入c1与c2,再显示 c3之 (a) 大小 (b) 相位角 (c) 实数部分

20、 (d) 虚数部分,存贮路径为当前的工作目录,程序文件其实就是一个批处理文件,它允许用户把命令放在一个简单的文本文件中,然后告诉Matlab打开文件并执行命令,就如同在命令窗口输入命令一样。文件名自定。,40,如何运行M文件?,直接在command window中键入文件名exa2_1(或在文本编辑窗口运行Run命令),Note: 1、文件名命名规则同变量名。 2、相当于在command window中逐条输入命令。 3、程序文件的工作空间和Matlab的工作空间是相同的(本例中,在工作空间可看到变量c1,c2,c3)。,41,函数文件也是一种文件,它是为完成某一特定任务而编写的,并且带有输入

21、和输出的文件。这种类型的文件近似于程序语言中的子程序,包含有输入(传送到文件的参数),输出(从文件返回的值),以及含有局部变量的命令体。Matlab其实就是一个函数的海洋,各种各样的领域都可以在Matlab中找到对应的函数,可根据需要学习一些相关的函数,用户也可用函数命令创建自己的函数。,M函数,什么是M函数?,42,function output1,output2 = filename(input1,input2,input3 ) commentsexpression(s),function相当于函数的接口,引入和导出函数变量的数目和它们的类型(标量、向量、矩阵等)。输出变量多于1个时,用

22、括起来。,函数文件的第一个非注释行必须按照特定的格式书写:,文件名为“filename.m”,函数的基本结构,注释,表达式,函数名,输入变量,43,function x = gaussElim(A,b) % File gaussElim.m % This subroutine will perform Gaussian elmination % i.e., given A and b it can be used to find x, % Ax = b % A - matrix for the left hand side. % b - vector for the right hand si

23、de % Designed by Wang,用高斯消元法,求解方程AX=b,例,Help命令可显示的部分,Help 命令不显示,Help gaussElim,函数名,.m文件的名字应该和函数名相同。 gaussElim.m,44,N = max(size(A); % Perform Gaussian Elimination(高斯消元)for j=2:N,for i=j:N,m = A(i,j-1)/A(j-1,j-1);A(i,:) = A(i,:) - A(j-1,:)*m;b(i) = b(i) - m*b(j-1);endend % Perform back substitution(高

24、斯回代)x = zeros(N,1);x(N) = b(N)/A(N,N);for j=N-1:-1:1,x(j) = (b(j)-A(j,j+1:N)*x(j+1:N)/A(j,j);end,函数体语句,在函数程序中没有结束字符或表达式,如end语句,它被用于for、while、if和switch结构而不用于函数。,注意:,表达式的写法和程序文件的写法相同。函数所使用的输入变量用变量名定义,其他变量由表达式定义。,45,函数的调用, C = 1 2 3 6; 4 3 2 3; 9 9 1 -2; 4 2 2 1; a = 1 2 1 4; y=gaussElim(C,a) y =0.6809

25、-0.89361.8085-0.5532 ,调用函数,结果显示,函数中使用的变量名不必和从matlab命令窗口、程序文件或另一函数中调用此函数时使用的名字一致。但圆括号内输入变量的位置确定了信息的传递顺序-在调用语句中的第一个参数将值传递到函数接中定义的第一个参数,依此类推。,给输入变量赋值,46,M函数与M程序文件的比较,后缀名均为.m M函数有自己专用的工作空间,它与matlab的工作空间分开。函数内部变量与matlab工作空间之间的唯一联系就是函数的输入和输出变量,这与M程序文件完全不同。而且函数是值传递的,换而言之,你在函数内部对输入变量做任何修改,都不会影响matlab工作空间的变量

26、。,47,数据的输入,给变量赋值(向量,矩阵等) Input函数 定义只包含数据的函数 数据存放于ASCII文本文件中,然后用load函数调用 Matlab与Excel连接,48,在程序设计时,往往需要在命令窗口中显示信息,以提示用户输入什么,可采用input函数。,格式如下:InputData=input(Enter the Data A:),在命令窗口中显示:Enter the Data A:,在此输入数据,可以是标量,向量,矩阵和字符串,数据的输入-input函数,Enter the Data A:1,2,3,4 InputData =1 2 3 4,用户输入,若输入为字符串,则输入st

27、ring,49,数据的输入定义存储数据的函数,function dat=FactorialData dat1=159,168,158,166,175,179 173 179 164 187 163 185 168 197 170 194; dat2=163 175 163 168 178 183 168 182 159 189 159 191 174 199 174 198; dat=dat1 dat2;,函数调用:fdata=FactorialData,当函数仅仅用来以指定的方式存储数据时,函数不需要任何输入参数。,50,数据输入用load函数调用文本文件,load函数的作用是将不带扩展名的

28、主文件名变为变量名,将文件中的数据变为向量或矩阵元素。,将数据存放在ASCII文本文件中,然后调用load函数。,51,程序流程控制,Matlab中程序流程控制命令有4种:while; if; for; switch。,一、while循环,语法结构:,while 条件语句 end,52,if 语句,if 条件#1表达式#1elseif 条件#2表达式#2else表达式#3end,if语句的常见格式:,53,for 循环,for循环可按指定次数重复执行一系列语句,其常见结构如下:,for 变量=s1:s3:s2 循环语句end,54,switch语句,其基本语法结构如下:,switch 开关表达

29、式case 表达式1语句段1case 表达式2语句段2otherwise语句段nend,开关表达式,表达式1,表达式2,其他,语句段1,语句段2,语句段n,等于,等于,等于,55,第三部分 Matlab绘图,56,二维图形绘制,基本的绘图指令Plot(x,y) 绘制以x为横坐标,以y为纵坐标 的二维图形。,57,我们可以对图形的颜色和线型进行修改。在plot命令里加入第三个参数(在单引号内)。,t=0:0.25:7; y = sin(t); plot(t,y,r: ),如将上例中正弦曲线改成红色的点线。,其它颜色和线型如表所示。,图形窗口的修饰,58,举例参见demos/graphic/lin

30、eplotting,图形修饰的各种选项,59,x = linspace(0,2*pi,50); y = sin(x); z = cos(x); plot(x,y,r, x,z,gx),在同一图形窗口中画多根曲线,方法一:y=sin(t); cos(t); plot(t,y),方法二:,60,方法三:采用hold on 和hold off 可达到同样的效果。,x = linspace(0,2*pi,50); y = sin(x); plot(x,y,r) z = cos(x); hold on plot(x,z,gx) hold off,在默认情况下,每执行一次plot命令,当前图形将被刷新。如

31、果用了hold on命令,从那开始的所有图形将会画在同一图形窗口中,不会刷新以前的图,直到hold off出现。,在同一图形窗口中画多根曲线,61,命令格式为:subplot(m,n,p) 将图形窗口分成m行n列个子窗口,p是所选择绘图子窗口。,比如,要想将正弦曲线,余弦曲线以及正切曲线画在一个图形窗口中,但又不在同一坐标轴上,下面这个M-file可以实现:,图形窗口的分割subplot函数,62,x = linspace(0,2*pi,50); y = sin(x); z = cos(x); w = tan(x); subplot(2,2,1) %将图形窗口分成22的4个子窗口,选 择第一个

32、画正弦曲线plot(x,y) subplot(2,2,2) plot(x,z) subplot(2,2,3) plot(x,w),subplot函数(续),63,命令格式如下:axis(xmin, xmax, ymin, ymax),t=0:0.01:5; y=exp(5*t)-1; plot(t,y),如,画出函数y=exp(5t)-1的曲线,axis(0, 1, 0, 50),改变坐标轴的大小axis命令,64,title (title string) 加入图形标题,xlable(x-axis string) % 给x轴加标注,ylable(y-axis string) %给y轴加标注,此

33、外,还可以在图形上加标注,text(xcor, ycor,textstring) % (xcor,ycor)为第一个字符的坐 标值。gtext(textstring) %使用鼠标决定文本的位置,给图形加入文本标注,所有这些命令都可以绘图命令完了以后加入。,65,在前例中程序后加上以下指令:title(this is a plot)xlabel(time(sec)ylabel(yout) text(0.4,40,y=exp(5t)-1) gtext(y=exp(5t)-1),给图形加入文本标注(续),66,figure(n) %打开一个新的图形窗口,保留以前的图形窗口,若n省略,则matlab自

34、动给出下一个整数值,clf %清除当前的图形,使当前的图 形窗口为空白,若要选择某一个已有的图形窗口,也可采用figure(n),其它图形控制命令(figure,clf,grid),67,grid %给图形加网格grid off %去掉网格,其它图形控制命令(figure,clf, grid)(续),close %关闭当前的图形窗口,68,三维图形绘制,、三维曲线的绘制Plot3(x,y,z,选项) x,y,z分别为维数相同的向量,69,三维图形绘制,2、三维曲面的绘制 mesh(x,y,z) % 绘制三维表面网格图f(x,y),70,三维图形绘制,2、三维曲面的绘制 surf(x,y,z)

35、% Surf画出的曲面由彩块组成z=f(x,y).,71,Meshc是在得到曲面的同时,还可以在Z=0平面上显示等高线。,Meshgrid函数创建了两个301301阶矩阵,因此可以估算出X,Y在任意组合下的Z的值。估算方法是通过计算Z=Z(X,Y)时由隐含的点操作完成的。,72,第四部分 simulink基础 (可视化建模与仿真),73,基本使用,启动simulink的方法有三种:,simulink模型库浏览器,1) 在命令窗口键入simulink. 2) file/new/model 3) 按matlab工具栏中的simulink按钮,74,仿真一个简单的模型,75,Simulink模型的建

36、立,打开一个空白的编辑窗口并将模块库中 模块复制到编辑窗口中,链接,76,模块的连接与简单处理,未连接,给模块加阴影效果,改变字体,修改模块的背景色,77,模块参数的修正,如饱和模块 的参数对话框,78,启动仿真环境,Start simulation,79,仿真控制参数选择,打开仿真参数对话框,80,仿真控制参数选择(续),仿真时间,仿真算法选择,输出信号的精确处理,一般连续系统仿真应该选择ode45变步长算法。对于刚性问题可选择变步长的ode15s算法,离散系统一般默认地选择定步长的discrete算法。离散模型中含有连续环节的要采用诸如四阶龙格库塔此类的算法。,81,Simulink模块库介绍,82,标准Simulink模块库,83,Sim power systems模块库,84,结束!,

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

当前位置:首页 > 实用文档 > 简明教程

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


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

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

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