1.MATLAB与仿真-矩阵基础1

上传人:丁** 文档编号:1239606 上传时间:2019-10-12 格式:PPT 页数:82 大小:811KB
返回 下载 相关 举报
1.MATLAB与仿真-矩阵基础1_第1页
第1页 / 共82页
1.MATLAB与仿真-矩阵基础1_第2页
第2页 / 共82页
1.MATLAB与仿真-矩阵基础1_第3页
第3页 / 共82页
点击查看更多>>
资源描述
MATLAB与仿真,主讲教师:韩雅菲,MATLAB课程安排,学时:40学时 安排:讲课32学时,上机8学时,MATLAB课程安排,学时:40学时 安排:讲课32学时,上机8学时,第1章 MATLAB概述,MATLAB语言是20世纪70年代,美国新墨西哥大学计算机科学系主任Cleve Moler为了为解决“线性代数”课程的矩阵运算问题,减轻学生编程的负担,用FORTRAN编写了最早的MATLAB。取名“MATLAB”即Matrix Laboratory,矩阵实验室的意思。 1984年由Little、Moler、Steve Bangert合作成立了的MathWorks公司正式把MATLAB推向市场。到20世纪90年代,MATLAB已成为国际控制界的标准计算软件。,MATLAB优势,友好的工作平台和编程环境 简单易用的程序语言 强大的科学计算机数据处理能力 出色的图形处理功能 应用广泛的模块集合工具箱 实用的程序接口和发布平台 应用软件开发(包括用户界面),MATLAB主要应用领域,MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用MATLAB 函数集)扩展了MATLAB 环境,以解决这些应用领域内特定类型的问题。,第2章 MATLAB语言程序设计基础,2.1 MATLAB语言的基本使用环境 MATLAB主窗口是MATLAB的主要工作界面。主窗口除了嵌入一些常用窗口外,还主要包括菜单栏和工具栏。,MATLAB用户界面,2.1 MATLAB语言的基本使用环境,菜单栏: 在MATLAB7.X主窗口的菜单栏,共包含File、Edit、Debug、Desktop、Window和Help 6个菜单项。,MATLAB菜单栏,在MATLAB 菜单栏,共包含File、Edit、View、Web、Window和Help 6个菜单项。 File:包括新建,打开文件,关闭,保存,打印,导 入数据,设置路径及退出等操作。 Edit:包括撤销,剪切、复制、粘贴等常见的操作。 Debug :程序的调试。 Desktop:用于设置MATLAB集成环境的显示方式。 Window:用于关闭所有打开的编辑器窗口,在各窗口 之间切换。 Help:用于提供帮助信息。,MATLAB帮助系统,进入帮助窗口可以通过以下3种方法: 单击MATLAB主窗口工具栏中的Help按钮; 在命令窗口中输入helpwin、helpdesk或doc; 选择Help菜单中的“MATLAB Help”选项。,MATLAB工具栏,工具栏: 工具栏包括新建文件、打开文件、剪切,复制,粘贴等常用图标; 显示MATLAB当前的路径,用户可以通过工具栏改变当前目录路径。,常用窗口,命令窗口(Command Window) 历史命令窗口( Command History) 当前工作目录(Current Directory) 工作空间(Workspace) 数组编辑器窗口(Array Editor) M文件编辑/调试器窗( Editor),1.命令窗口,1.命令窗口,作用:命令窗口是MATLAB的主要交互窗口,用于输入命令并显示除图形以外的所有执行结果。 在命令窗口中输入MATLAB命令和数据后按回车键,立即执行运算。 命令窗口中的语句形式为: 变量=表达式;,说明:命令窗口中的每个命令前会出现提示符 “”,没有“”符号的行则是显示的结果”。,1.命令窗口,句末加分号;则不显示结果,例: a=3; b=4; c=a+b; c c = 7,2.历史命令窗口,2.历史命令窗口,作用:在默认设置下,历史记录窗口中会自动保留自安装起所有用过的命令的历史记录。 当按下方向键时窗口会依次出现已输入命令。,2.历史命令窗口,用来记录并显示已经运行过的命令、函数和表达式。,3.当前工作目录,说明:当前工作目录用来设置当前目录,并显示当前目录下的M文件、MAT文件等文件信息,窗口中包含文件名称、类型、文件大小和修改时间等。,3.当前工作目录,当用户在MATLAB命令窗口输入一条命令后,MATLAB按照一定次序寻找相关的文件。基本的搜索过程是: (1) 检查该命令是不是一个变量。 (2) 检查该命令是不是一个内部函数。 (3) 检查该命令是不是当前目录下的M文件。 (4) 检查该命令是不是MATLAB搜索路径中其他目录下的M文件。 因此,当前目录设置是否正确,决定程序是否能正确运行。,4.工作空间,4.工作空间,说明:工作空间浏览器窗口用于显示内存中所有的变量名、数据结构、类型、大小和字节数。,5.数组编辑器窗口,启动数组编辑器窗口的方法有:1.在工作空间窗口中双击该变量;2.选择变量点击鼠标右键,选择“open selection”。,6.M文件编辑/调试窗口,打开M文件编辑/调试器窗口的方法:1点击工具栏新建图标;2点击菜单“File”“New”“M-File”;3.打开已保存的M文件。,2.2 MATLAB语言的数据结构,2.2.1常量与变量 标识符:是标志变量名、常量名、函数名和文件名的字符串的总称。字符包括全部的英文字母(大小写52个)、阿拉伯数字和下划线等符号,标识符中第一个字符必须是英文字母。 例:变量 A,a,A1,A_1 变量 1A,1a,_a ,2.2.2赋值语句,矩阵及其元素的赋值 赋值就是把数赋予代表常量或变量的标识符。在MATLAB中,变量都代表矩阵。列向量可被当作只有一列的矩阵;行向量也可被当作只有一个行的矩阵;标量应看作11阶的矩阵。 赋值语句的一般形式为: 变量表达式(或数),2.2.2赋值语句,例如: a=3; b=4; c=a+b; d=sin(t);,MATLAB内部特殊变量和常数,在MATLAB语言中为特定常数保留了一些名称,虽然这些常量可以被重新赋值,但在编程时尽量避免对这些量重新赋值。,MATLAB内部特殊变量和常数,变量ans:临时变量,通常指示当前的答案。 常数eps:表示浮点相对精度;其值是从1.0到下一个最大浮点数之间的差值。变量值作为一些MATLAB函数计算的相对浮点精度,按IEEE标准,esp近似为2.2204e-016。 常数realmax:表示最大正浮点数;任何大于该值的运算都溢出。在具有IEEE标准浮点格式的机器上,realmax略小于21024 ,近似为1.7977e+308。 常数realmin:表示最小正浮点数;任何小于该值的运算都溢出。在具有IEEE标准浮点格式的机器上,realmin略小于2-1024 ,近似为2.2251e-308。,MATLAB内部特殊变量和常数,常数pi:表示圆周率 =3.1415926535897.。表达式4*atan(1)和imag(log(-1)产生相同的值。 常数Inf:代表正无穷大,一般被0除或溢出则产生无穷大结果。如2/0,210000均产生结果:Inf;而log(0)产生结果:-Inf。 虚数单位i,j:表示复数虚部单位,相当于 。 NaN:表示非数值。如当Inf-Inf,Inf/Inf, 0*Inf,0/0均产生该结果。,(1)变量ans, a=3; b=4; a+b ans = 7,变量ans:临时变量,通常指示当前的答案。,常数eps,常数eps:表示浮点相对精度;其值是从1.0到下一个最大浮点数之间的差值。esp默认值为2.2204e-016,若某个量的绝对值小于eps,则从数值运算的角度可以认为这个量为0。,常数eps, eps ans = 2.2204e-016,常数realmax:,常数realmax: 表示最大正浮点数;任何大于该值的运算都溢出。Realmax默认值为1.7977e+308。,常数realmax:, realmax ans = 1.7977e+308,常数realmin:,常数realmin: 表示最小正浮点数;任何小于该值的运算都溢出。Realmin默认值为2.2251e-308。,常数realmin:, realmin ans = 2.2251e-308,常数pi:,pi:表示圆周率 =3.1415926535897 表达式4*atan(1)和imag(log(-1)产生相同的值。,常数pi:,常数Inf:,常数Inf:代表正无穷大,一般被0除或溢出则产生无穷大结果。如2/0,210000均产生结果Inf;而log(0)产生结果-Inf。,常数Inf:,虚数单位i,j,i,j:表示复数虚部单位, a=3+2i a = 3.0000 + 2.0000i b=3+2j b = 3.0000 + 2.0000i,NaN,NaN:表示非数值。 如: Inf-Inf; 0*Inf; Inf/Inf, 0/0 均产生该结果。,2.2.3矩阵的MATLAB表示,1赋值要求 在输入矩阵时,应遵循以下规则: 整个矩阵的值应放在方括号中; 同一行中各元素之间以逗号“,”或空格分开; 不同行的元素以分号“;”隔开。,2.2.3矩阵的MATLAB表示, a=1 2;3 4 a = 1 2 3 4, a=1,2;3,4 a = 1 2 3 4,例如:,2.2.3矩阵的MATLAB表示,一般来说,一个命令行输入一条命令,命令行以回车结束。但一个命令行也可以输入若干条命令,各命令之间以逗号分隔,若前一命令后带有分号,则逗号可以省略。 例如: p=15,m=35; p=15;m=35,2.2.3矩阵的MATLAB表示,如果一个命令行很长,一个物理行之内写不下,可以在第一个物理行之后加上3个小黑点并按下回车键,然后接着下一个物理行继续写命令的其他部分。3个小黑点称为续行符,即把下面的物理行看作该行的逻辑继续 。,2.2.3矩阵的MATLAB表示,a=3;b=2;c=1; d=a+b. -c d = 4,2.2.3矩阵的MATLAB表示,2变量的元素的标注 在MATLAB中,变量的元素(即矩阵元)用圆括号“()”中的数字(也称为下标)来注明,一维矩阵(也称数组)中的元素用一个下标表示,二维矩阵由两个下标数构成,以逗号分开,对三维矩阵则由三个下标数构成。,变量的元素的标注:一维矩阵举例, a=rand(1,3) a = 0.8913 0.7621 0.4565 b=a(2) b = 0.7621,变量的元素的标注:二维矩阵举例, a=rand(2,3) a = 0.6154 0.9218 0.1763 0.7919 0.7382 0.4057 b=a(2,2) b = 0.7382,变量的元素的标注:三维矩阵举例, a=rand(2,2,2) a(:,:,1) = 0.9355 0.4103 0.9169 0.8936 a(:,:,2) = 0.0579 0.8132 0.3529 0.0099, b=a(2,2,1) b = 0.8936,2.2.3矩阵的MATLAB表示,3赋值技巧 利用冒号“:” 给全行或部分元素赋值; (2)利用行、列标注构成新的矩阵。,(1)利用冒号“:” 给全行的元素赋值, a=rand(2,2) a = 0.1389 0.1987 0.2028 0.6038 a(:,2)=1 a = 0.1389 1.0000 0.2028 1.0000,思考: 如果接下来输入命令:a(1,:)=1 那么a=? a = 1.0000 1.0000 0.2028 1.0000, a=ones(4) a = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 a(2:4,3:4)=0 a = 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0,习题: A为5*4矩阵, B为4*6矩阵,C=A*B 1)求出乘积矩阵C, 2)将C矩阵的右下角2*3的子矩阵赋给D矩阵。,利用冒号“:” 给局部元素赋值,习题,A=1,2,3,3;2,3,5,7;1,3,5,7;3,2,3,9;1,8,9,4 A = 1 2 3 3 2 3 5 7 1 3 5 7 3 2 3 9 1 8 9 4,B=1,4,3,6,7,8;2,3,3,5,5,4;2,6,5,3,4,2;1,8,9,5,4,3 B = 1 4 3 6 7 8 2 3 3 5 5 4 2 6 5 3 4 2 1 8 9 5 4 3,2.10习题(2), C=A*B C = 14 52 51 40 41 31 25 103 103 77 77 59 24 99 100 71 70 51 22 108 111 82 79 65 39 114 108 93 99 70, D=C(4:5,4:6) D = 82 79 65 93 99 70,(2)利用行、列标注构成新的矩阵,若要产生矩阵 a = 1 1 1 1 2 1 1 1 1,可以采用以下方法: a=ones(3,3) a = 1 1 1 1 1 1 1 1 1 a(2,2)=2,2.2.3矩阵的MATLAB表示,4特殊矩阵和数组 (1)单位矩阵函数eye(); (2)zeros函数、ones函数; (3)rand以及randn 函数; (4)linspace函数。,1.eye(m,n),eye(m,n)产生对角线元素为1,其他元素为0的矩阵。 例如:, eye(3,2) ans = 1 0 0 1 0 0, a=eye(3,3) a = 1 0 0 0 1 0 0 0 1,2. zeros函数、ones函数,zeros(m,n):产生m行,n列矩阵,矩阵元素均为0。 ones(m,n):产生m行,n列矩阵,矩阵元素均为1。, zeros(2,3) ans = 0 0 0 0 0 0, ones(3,2) ans = 1 1 1 1 1 1,3.rand以及randn 函数,rand:产生随机矩阵,矩阵元素满足在0、 1之间均匀分布。 randn:产生随机矩阵,矩阵元素服从均值为0,方差为1的正态分布。, rand(3,3) ans = 0.5252 0.8381 0.2026 0.0196 0.6721 0.6813, randn(3,2) ans = -1.1465 -0.0376 1.1909 0.3273 1.1892 0.1746,4. linspace函数,linspace函数的调用格式如下: y=linspace(a,b,n)产生一个行矢量y,该矢量把a和b间的数等分n份而得到。,例: y=linspace(1,100,5) y =1.0000 25.7500 50.5000 75.2500 100.0000,2.2.3矩阵的MATLAB表示,5复数的赋值方式 MATLAB的每一个元素都可以是复数,实数是复数的特例。复数的虚数部分用i或j表示。对复数矩阵有两种赋值方法: (1)可将矩阵元逐个赋予复数; (2)将矩阵的实部和虚部分别赋值。,复数的赋值方式,逐个赋值: a=zeros(2,1); a(1,1)=1+2i; a(2,1)=2+2i a = 1.0000 + 2.0000i 2.0000 + 2.0000i,实、虚部分别赋值: b=1;2; c=2;2; d=b+ci d = 1.0000 + 2.0000i 2.0000 + 2.0000i,2.2.3矩阵的MATLAB表示,6变量检查 在程序调试或变量的赋值过程,往往需要检查工作空间中的变量、变量的阶数以及变量赋值内容。在检查变量及其阶数等内容时,既可用工作空间窗口,也可在命令窗口使用who或whos命令来完成检查。当查看某变量的赋值情况,可在命令窗口直接键入该变量名回车即可。,变量检查(who,whos), d =1.0000 + 2.0000i 2.0000 + 2.0000i; whos Name Size Bytes Class d 1x2 32 double array (complex) Grand total is 2 elements using 32 bytes who Your variables are: d,2.3 MATLAB下矩阵的运算,2.3.1 矩阵的代数运算 (1)矩阵加减法“”:AB 功能:两矩阵对应元素相加减。因此,A和B两矩阵必须有相同的大小,或其中之一为标量,标量可以与任意大小的矩阵相加。,(1)矩阵加减法“”:AB,相同大小矩阵相加: a=2,3; b=ones(1,2) b = 1 1 c=a+b c = 3 4,矩阵与常数相加: a=2,3; b =1; c=a+b c = 3 4,2.3.1 矩阵的代数运算,(2)矩阵相乘“*”:A*B 功能:C =A*B为两矩阵线性代数的乘积。 例: a=1,2; b=1;3; c=a*b c = 7,2.3.1 矩阵的代数运算,(3) 矩阵元素相乘“.*”:A.*B 功能:矩阵A和B的对应元素相乘;因此,A和B必须大小相同,或其中之一为标量。 a=1,2; b=1,3; c=a.*b c = 1 6,2.3.1 矩阵的代数运算,(4)矩阵右除“B/A”与左除“AB” 如果A为一非奇异矩阵,则B/A与AB可通过A的逆矩阵与B矩阵得到: B/A=B*inv(A); AB=inv(A)*B。,2.3.1 矩阵的代数运算,(5)矩阵元素右除“A./B”与左除“A.B” 矩阵元素右除“A./B”表示矩阵元素A(i,j)/B(i,j); 矩阵元素左除“A.B” 表示矩阵B(i,j)/A(i,j),因此,A和B必须大小相同,或者其中之一为标量。,2.3.1 矩阵的代数运算,右除: a=4,4;4,4; b=2,2;2,2; c=a./b c = 2 2 2 2,左除: a=4,4;4,4; b=2,2;2,2; d=a.b d = 0.5000 0.5000 0.5000 0.5000,2.3.1 矩阵的代数运算,(6)矩阵幂“”: xp 表示x的p次幂; 例: x=2;p=2; xp ans = 4,2.3.1 矩阵的代数运算,(7)矩阵元素幂“.”:A.B A.B表示矩阵元素A(i,j)的B(i,j)次幂,A与B必须大小相同,或者其中之一为标量。,2.3.1 矩阵的代数运算,A与B必须大小相同: a=1,2;1,2; b=2,2;2,2; c=a.b c = 1 4 1 4,其中之一为标量。 a=1,2;1,2; b=2; c=a.b c = 1 4 1 4,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 机械制造 > 机械制造


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!