天津理工大学中环信息学院ppt课件.ppt

上传人:本田雅阁 文档编号:3302711 上传时间:2019-08-10 格式:PPT 页数:68 大小:2.52MB
返回 下载 相关 举报
天津理工大学中环信息学院ppt课件.ppt_第1页
第1页 / 共68页
天津理工大学中环信息学院ppt课件.ppt_第2页
第2页 / 共68页
天津理工大学中环信息学院ppt课件.ppt_第3页
第3页 / 共68页
天津理工大学中环信息学院ppt课件.ppt_第4页
第4页 / 共68页
天津理工大学中环信息学院ppt课件.ppt_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《天津理工大学中环信息学院ppt课件.ppt》由会员分享,可在线阅读,更多相关《天津理工大学中环信息学院ppt课件.ppt(68页珍藏版)》请在三一文库上搜索。

1、天津理工大学中环信息学院,电气工程仿真与辅助设计,第2章 MATLAB语言基础,主要内容: 1、数据结构与语句结构 2、基本控制流程结构 3、M-函数设计 4、图形可视化 5、数据处理,2.1 数据结构与语句结构,第2章,1、MATLAB基本操作,MATLAB工作界面: 标题栏、 菜单栏、 工具栏、 命令窗口、 工作空间、 历史命令窗口 等,2、编程规范, 变量命名规则 避免使用无意义的字母组合 Temperature Degree_C/ Degree_F 函数命名规则 模块名_功能名 Key_GetKey() 书写规范,3、变量, 变量命名规则: 必须以字母开头; 可以由字母、数字和下划线混

2、合组成; 变量长度应不大于31个; 字母区分大小写。,如: 1、Degree、degree 2、12Myvar、_Myvar 正确的变量名如a、a1、a_1 在命名的过程中,避免使用无意义的字母组合。, 特殊变量尽量避免重新赋值,返回, MATLAB快捷键:, 回调上一行命令 回调下一行命令 左移一个字符 右移一个字符 Delet Backspace 删除字符 Ctrl+C 中断MATLAB任务, 通用命令:,help 帮助 clear 清除变量 clc 清屏,what 查看当前路径下的m文件 who, whos 查看workspace变量 load, save 储存、读取mat文件, 数据结

3、构:,在MATLAB里共有六种数据类型,每一种类型可以是一维、二维和多维的。 双精度型数值量常用double(), 取值范围(-1.7103081.710308) 字符串型单引号扩起来,hello 多维数组是矩阵的拓展,用 括起来。 单元数组是矩阵的直接扩展,可存储 任意类型的信息,Ai,j 类与对象如传递函数类,tf(G) 符号变量syms a可用于公式推导, 数据的存储与读取 数据存储:save fname A1 A2.Am 其中fname为文件名,自动生成fname.mat的数据文件类型。 数据读取:load fname A1 A2.Am 注意:需要存储的数据A1 A2.Am之间用空格隔

4、开, 不能采用逗号隔开 举例说明,4、基本语句结构:,(1)直接赋值语句,变量名列表=赋值表达式 等号左边的变量名列表为MATLAB语句的返回值,若一次返回多个结果,则变量列表用 括起来,各变量间用逗号分隔; 等号右边为表达式,可以是矩阵运算或函数调用,可以由分号(;)、逗号(,)或回车结束。 注意:语句结尾有无分号的显示结果区别是什么。,如: var1=2,5,6,7,8,3 运行结果:var1= 2 5 6 7 8 3 如果不想显示结果,在赋值语句的结尾加一个分号。 var1=2,5,6,7,8,3;,如果省略了赋值变量和等号,则表达式运算的结果将赋值保留变量ans。ans将存放最后一次无

5、赋值变量语句的结果。 如: 2,5,6,7,8,3 运行结果:ans= 2 5 6 7 8 3, 基本语句结构:,(2)函数调用语句,返回变量列表=函数名(输入变量列表) 一般函数名应对应在MATLAB路径下的一个文件,如,函数名my_fun应该对应在my_fun.m文件; 返回变量列表和输入变量列表可以有若干变量,变量间用“,”分隔,此外,返回变量还允许用“空格”分隔 如:A_inv=inv(A) (其中inv求解逆矩阵) u,s,v=svd(X) (其中svd对矩阵X进行奇异值分解,s为对角矩阵,X=u*s*v),5、矩阵的MATLAB表示:, 矩阵的赋值 矩阵用“ ”扩起来 “分号”表示

6、换行 “,”或“空格”表示同一行元素分隔 如:直接输入 A=1 2, 3; 4 5 6;7, 8 9 冒号操作符 a=0:1:10 a=linspace(0,1,10) a=logspace(1,2,10), 下标操作:,矩阵下标(按列优先排列) 用两个下标来表示。第i行j列的元素用A(i,j)来表示 用一个下标来表示。对于矩阵按列操作,可用单下标引用A(i) 。 在下标的表达式中使用冒号表示矩阵的一部分。 下标引用从序号1开始。,矩阵行列删除 B=1 2 3;4 5 6; 7 8 9; B(2,: )= B= 1 2 3 7 8 9,选择特定行列 B=1 2 3;4 5 6; 7 8 9;

7、B(2,: ) B= 4 5 6, 下标操作:,例: A= 1 4 7 2 5 8 3 6 9 A(4)+A(8), 矩阵的尺寸:,为了判断矩阵的尺寸,Matlab提供了以下函数: m,n=size(A) %返回矩阵的行数m和列数n M=size(A) %在矩阵M中返回矩阵的行数、 列数 len=length(A) %返回矩阵A行数和列数中的 最大值, 矩阵表示练习,例子:x=0.3,0.4,0.6,1.5,0.8,1.2 x(3) x(1 2 5) b=16 2 3 13;5 11 10 8;9 7 6 12;4 14 15 1 b(3,4) b(2 4,1 3) b(2,5,8) b(2;

8、5;8) b(b10) size(b) nrow,ncol=size(b), 特殊矩阵:,单位矩阵 eye(n) %生成n维单位阵 eye(m,n) %生成mn的单位阵 eye(m,n) %生成mn的单位阵 eye(size(A) %生成与A矩阵同样大 小的单位矩阵, 特殊矩阵:,全1矩阵 ones(n) ones(m,n) ones(m,n) ones(size(A) 全零矩阵 zeros(n) zeros(m,n) zeros(m,n) zeros(size(A) 随机矩阵 rand(n) rand(m,n) rand(m,n) rand(size(A) 生成的随机矩阵的各个元素值在0和1

9、之间。 对角阵 diag(n) 对角阵 魔术矩阵 magic(n) 魔术矩阵的所有行元素和、列元素和、对角线元素和均相等, 矩阵的代数运算:,转置 B=A(hermit转置,有复数的变共轭复数) 加减乘 A+B A-B A*B 左除 AB 即AX=B的解X=A-1B 右除 A/B 即XB=A的解X=AB-1(B-1A-1) 翻转 fliplr(左右翻转)flipud(上下翻转) rot90(逆时针旋转90) 乘方 AB(A为方阵) 点运算 A.*B A./B A.B A.B A. A.*B表示矩阵A、B的相应元素之间直接进行乘法。 注意:点乘运算A、B矩阵的维数相同,6、矩阵的基本运算:, 矩

10、阵的代数运算练习,例: a=1 2-1j 3 4;5 6+2j 7 8, b=4 3 1;5 3 2;8 6 3;2 1 6, c=1 2 3 4;5 6 7 8 求 a , a. , a*b , a.*c , a/c , a./c , fliplr(a) , flipud(b) , rot90(c), 矩阵的逻辑运算:,逻辑运算 & (与) |(或) (非) 结果是一个0-1矩阵。当逻辑表达式的值为真时,赋值1,否则为0 逻辑函数 all :当某列的元素都为真时,返回值为1,否则返回0。最终运算结果为一个0-1行向量 any :当向量中至少有一个元素为真时,返回值为1,否则返回0。最终运算结

11、果为一个0-1行向量 find:用于查找向量中的真元素的下标,返回由所有真元素下标构成的列向量。, 矩阵的比较运算:,比较运算 在MATLAB里共有六个关系运算符 大于 =大于等于 = 等于 =不等于 关系运算符将生成一个0-1矩阵,当运算数相应元素为真时,对应位置上生成1,否则为0。,知识点总结:,1、全英文状态输入 2、文件类型: 数据文件 *.mat M文件*.m 图片文件 *.fig 模型文件*.mdl 3、, ; : ( ) 4、点运算,a= 1 2 3 4,b= 1 2 3 4,a*b= 7 10 15 22,a.*b= 1 4 9 16,t=1 2 3 4; s=2.t s=2

12、4 8 16,2.2 基本控制流程结构,第2章,1、顺序结构,最简单的语句结构,逐条执行语句即可。 如: a=1 2 3;4 5 6; b=2 5 8;7 2 0; s=a.*b,2、循环结构,MATLAB中的循环语句包括for循环和while循环两种类型。, for语句:,基本格式为: for 循环变量=起始值:步长:终止值 循环体 end 步长的缺省值是1。步长可以在正实数或负实数范围内任意指定, 对于正数,循环变量的值大于终止值时,循环结束; 对于负数,循环变量的值小于终止值时,循环结束。 (循环次数确定), while语句:,基本格式为: while 表达式 循环体 end 其表达式是

13、个逻辑表达式,若为真,则执行循环体的内容,执行后再判断表达式是否为真,若为假则跳出循环体,向下继续执行,否则继续执行循环体。 break:从循环体中跳出,并使循环结束 (循环次数不确定),例:,解题过程: 1.用for语句表示: s=0;for i=1:100,s=s+i;end,s 或用while语句表示: s=0;i=1;while(i=100) s=s+i;i=i+1;end,s 2. i=0;s=0;while(s=1000) s=s+i;i=i+1;end,i-1,s,实际编程中,如果能对整个矩阵进行运算,尽量不要采用循环,这样可提高代码的效率,s=i=1100000(1/2i+1/

14、3i),分别用矩阵和循环的方式求解 解题过程: tic,s=0;for i=1:100000,s=s+1/2i+1/3i;end;toc 或者 tic,i=1:100000;s=sum(1/2).i+(1/3).i); toc,3、选择结构 转移结构,if-elseif格式 如果逻辑表达式的值为真,则执行语句1,若逻辑表达式的值为假,则判断逻辑表达式2的值,若为真,则执行语句2,否则向下执行,若所有表达式均为假,执行语句el 。,if 逻辑表达式1 执行语句1 elseif 逻辑表达式2 执行语句2 elseif 逻辑表达式n 执行语句n else 执行语句el end,循环语句例2另解: s

15、=0; for m=1:1000, s=s+m; if s1000, break; end, end, m,3、选择结构 开关结构,表达式的值和哪种情况的值相同,就执行哪种情况中的语句,如果都不同,则执行otherwise中的语句。 注意:无需像C语言那样在下一个case之前加break语句,switch 表达式(标量或字符串) case 值1 语句1 case 值2 语句2 case 值n 语句n otherwise 语句ow end,2.3 M-函数设计,第2章,1、MATLAB程序设计基本原则, 后面的内容是程序的注解,要善于运用注解使程序更具可读性。 养成在主程序开头用clear指令清

16、除变量的习惯,以消除工作空间中其他变量对程序运行的影响。但注意在子程序中不要用clear。 参数值要集中放在程序的开始部分,以便维护。要充分利用MATLAB工具箱提供的指令来执行所要进行的运算,在语句运行之后输入分号使其及中间结果不在屏幕上显示,以提高执行速度。, 程序尽量模块化,也就是采用主程序调用子程序的方法,将所有子程序合并在一起来执行全部的操作。 充分利用Debugger来进行程序的调试(设置断点、单步执行、连续执行) 设置好MATLAB的工作路径,以便程序运行。,2、MATLAB程序的基本组成结构, 说明 清除命令:清除workspace中的变量和图形(clear,close) 定义

17、变量:包括全局变量的声明及参数值的设定 逐行执行命令:指MATLAB提供的运算指令或工具箱提供的专用命令 . . . 控制循环:包含for,if.else,switch,while等语句 逐行执行命令 . . . 绘图命令:将运算结果绘制出来,3、MATLAB程序类型,对于简单的计算可直接在指令窗口中输入指令,但指令数多的时候,则用源程序文件即M文件设计。 M文件:用Matlab语言编写的可以在Matlab环境中运行的程序称为M文件。 M文件以.m为扩展名, M文件分为两种:M-脚本文件(命令文件) 和M函数文件, M-脚本文件:根据用户要求,使用Matlab语 言组成一定功能的Matlab指

18、令集合. 使用方法:在MATLAB的提示符下键入该文件名。 M-脚本文件运行后,所产生的变量驻留在Matlab工作空间中,只要不用clear命令清除,(或关闭Matlab窗口)这些变量会一直保留在Matlab工作空间中. 适用范围:适用于小规模运算,例:下面语句如果以.m为扩展名存盘,就构成 M 脚本文件 M 脚本文件: num=2*1,2; den=conv(conv(1,0,1,3),1,2,2); G1=tf(num,den); G=ss(G1); a,b,c,d=ssdata(G); Ab=a-b*c Bb=b Cb=c Db=0 step(Ab,Bb,Cb,Db), M函数文件: M

19、函数文件就是建立一个函数,它可以同Matlab的基本函数一样加以使用。 基本结构: function 返回变量列表=函数名(输入变量列表) 注释说明语句段,由%引导 输入、返回变量格式的检测 函数体语句,注意: 函数文件的第一行必须包括“function”这个关键字。 函数文件的文件名必须和函数定义的函数名称相同, M函数文件中所定义的变量是内部变量, M函数执行完后这些变量随之消失。 输入参数的定义用小括号(),如果有多个输入参数则用逗号分隔;输出参数的定义用中括号,如果有多个输出参数则用逗号或空格分隔。,例:function y=mean(x) %This is a M function

20、file m=length(x); y=sum(x)/m ; 将上面程序保存:mean1.M 构造了一个M函数文件,该函数可实现对平均数的求取。随时可调用。 如:r=1:99; mean(r) 运行得到: ans= 50,(1)函数定义行(关键字function) functionout1,out2,=filename(in1,in2,) 输入和输出(返回)的参数个数分别由nargin和nargout两个MATLAB保留的变量来给出。 (2)第一行帮助行,即H1行,以(%)开头,作为lookfor指令搜索的行 (3)函数体说明及有关注解:以(%)开头,用以说明函数的作用及有关内容;如果不希望显

21、示某段信息,可在它的前面加空行 (4)函数体语句:函数体内使用的除返回和输入变量这些在function语句中直接引用的变量以外的所有变量都是局部变量,即在该函数返回之后,这些变量会自动在MATLAB的工作空间中清除掉。如果希望这些中间变量成为在整个程序中都起作用的变量,则可以将它们设置为全局变量。,2.4 图形可视化,第2章, 图形绘制 () 图形标注 图形控制,plot(y) plot(x,y) plot(x1,y1,option1,x2,y2,option2,.),plot控制:,功能:在调用函数plot时,可以指定线型,颜 色,和数据点的图标。 格式:plot(x,y, color_li

22、nestyle_marker) 说明:参数color_linestyle_marker 为一个字 符串,由颜色、线型、数据点的图标组成。,线性和颜色字符定义表:, 图形绘制 图形标注() 图形控制,text(x,y,字符串) 在图形的指定坐标位置(x,y)处,标示单引号括起来的字符串。 gtext(字符串) 利用鼠标在图形的某一位置标示字符串。 title(字符串) 在所画图形的最上端显示说明该图形标题的字符串。 xlabel(字符串),ylabel(字符串) 设置x,y坐标轴的名称, 图形绘制 图形标注 图形控制(),figure(1);figure(2);figure(n)打开不同的图形窗

23、口,以便绘制不同的图形。 grid on; grid off 显示/不显示格栅线 hold on; hold off 保存/不保存当前的坐标系 axis(xmin xmax ymin ymax)设置坐标轴 subplot(m,n,k) 分割图形显示窗口,m:上下分割个数,n:左右分割个数,k:子图编号 semilogx;semilogy 绘制以x(或y)轴为对数坐标(以10为底),y轴(或x轴)为线性坐标的半对数坐标图形。,绘图一般步骤, 准备绘图需要的数据; 指定绘图的窗口或者区域; 调用基本绘图命令; 选择线型、颜色、数据点形状; 坐标轴控制,包括显示范围、刻度线、比例、网格线; 标注控制

24、,包括坐标轴名称、标题、相应文本等。,MATLAB提供了丰富的绘图功能 help graph2d可得到所有画二维图形的命令 help graph3d可得到所有画三维图形的命令,例:,P26 例2-7 例2-8 例2-9,2.5 数据处理,第2章,1、矩阵分解 三角分解 特征值分解,L,U=lu(A) %求矩阵A的LU分解 Xinv(A) %求矩阵A的逆矩阵 d=det(A) %求矩阵A的行列式,deig(A); V,Deig(A); V,Deig(A,nobalance),2、多项式的创建,直接输入法 例如: A=1,2;3,4 poly(A) %创建方阵A的特征多项式 A=1 2;3 4;p

25、oly(A) 得到ans=1 -5 -2;即x2-5x-2 poly(a) %如果a为向量bn bn-1b1 b0,则创建(x-b0 )( x-b1) (x-bn-1 )(x- bn )生成的多项式的系数向量 b=1 2 3;poly(b) 得到ans=1 -6 11 -6;即x3-6x2+11x-6,多项式常用函数,roots ( ) %求多项式的根 p=poly(A) %求矩阵的特征多项式 polyval( p,x) %求当多项式p的参数为某个特定值x时的多项式的值,p为系数向量, polyvalm(p,A) %和polyval作用相同,输入参数值也可为方阵A 例:w=1 -3 2;roo

26、ts(w)得到2 1 即x2-3x+2=0,得到x=1,x=2 求x3-6x2+11x+6,当x=1时的解 a=1 -6 11 6;polyval(a,1),卷积和解卷积,c=conv(A,B) %卷积函数 ,多项式乘法函数 Q,R=deconv (A,B) %解卷积函数,多项式除法函数,导数,Pdpolyder(P) %求多项式P的导数 Pmpolyder(P1,P2) %求多项式P1和多项式P2乘积的导数 Q,D=polyder(P1,P2) %求多项式P1除以多项式P2商的导数,多项式拟合,从最小二乘法的意义上,polyfit函数将拟合出所给数据的多项式系数,其调用格式为: p=poly

27、fit(x,y,n) 其中,x和y为已知数据的横坐标和纵坐标向量,n为多项式的次数。,多项式插值,多项式插值是指根据给定的有限个样本点,产生另外的估计点以达到数据更为平滑的效果。该技巧在信号处理与图像处理上应用广泛。 所用指令有一维的interp1、二维的interp2、三维的interp3。这些指令分别有不同的方法(method),设计者可以根据需要选择适当的方法,以满足系统属性的要求。Help polyfun可以得到更详细的内容。 y=interp1(xs,ys,x,method) 在有限样本点向量xs与ys中,插值产生向量x和y,所用方法定义在method中,有4种选择: nearest

28、:执行速度最快,输出结果为直角转折 linear:默认值,在样本点上斜率变化很大 spline:最花时间,但输出结果也最平滑 cubic:最占内存,输出结果与spline差不多,数据处理练习题:,如:1、多项式x4-12x3+0x2+25x+116求多项式当x=5的值,及多项式=0时的根。 P=1 -12 0 25 116;poly2sym(P) polyval (P,5) %求此多项式当x=5时的值 r=roots(P)%求此多项式=0时的根 2、a=1 2 3;b=1 2求a与b的卷积c;求多项式c除以多项式a;求多项式a的导数;求多项式a当x为2时的解。 c=conv(a,b)=1 4

29、7 6 其中,conv指令可以嵌套使用,如conv(conv(a,b),c) q,r=deconv(c,b)得q=1 2 3 商多项式 r=0 0 0 余多项式 polyder(a)=2 2 polyval(a,2)=11,数据处理练习题:,如:3、t=0 0.3 0.8 1.1 1.6 2.3; y=0.5 0.82 1.14 1.25 1.35 1.40;求阶数为2的多项式拟合,t=0.2,0.5,1.0,1.5,2.0的插值。 t=0 0.3 0.8 1.1 1.6 2.3; y=0.5 0.82 1.14 1.25 1.35 1.40; p=polyfit(t,y,2) fv=poly

30、val(p,t) %求拟合多项式在t时的拟合数据 plot(t,y,o,t,fv) x=0.2,0.5,1.0,1.5,2.0;n=interp1(t,y,x,spline) plot(t,y,O,x,n,*,t,fv),常微分方程数值解,t, x=ode23(xfun, t0, tf x0, tol, trace) t, x=ode23(xfun, t0, tf x0, tol, trace) 课本P53 例2-20 线性常微分方程求解: 先用syms命令声明符号变量,然后再用dsolve(表达式)命令。 课本P56 例2-21,求解M-文件,function yp=vdp(t,x) yp(1)=x(2); yp(2)=2*(1-x(1)2)*x(2)-x(1); %令u=2 在命令行求解这个方程: t,x=ode45(vdp,0,20,1 ;1); plot(t,x(:,1),t,x(:,2); %画出x和dx/dt的时域波形,双击添加标题文字,单击此处添加段落文字内容,P61 1、2、3、4、11、31,课后练习,双击添加标题文字,单击此处添加段落文字内容,1、掌握变量命名、常用的数据类型 2、掌握常用的矩阵运算及流程结构 3、掌握两种M文件, 4、掌握一维、二维图形显示 5、了解常用的数据处理,本章小结,谢谢观看!,谢谢观赏,

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

当前位置:首页 > 其他


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