ImageVerifierCode 换一换
你正在下载:

Matlab.docx

[预览]
格式:DOCX , 页数:59 ,大小:369.37KB ,
资源ID:7272022      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7272022.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Matlab.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Matlab.docx

1、MatlabMatlab用法简介绪 论Matlab是“Matrix Laboratory”的缩写,意为“矩阵实验室”,是当今美国很流行的科学计算软件信息技术、计算机技术发展到今天,科学计算在各个领域得到了广泛的应用在许多诸如控制论、时间序列分析、系统仿真、图像信号处理等方面产生了大量的矩阵及其相应的计算问题自己去编写大量的繁复的计算程序,不仅会消耗大量的时间和精力,减缓工作进程,而且往往质量不高美国Mathwork软件公司推出的Matlab软件就是为了给人们提供一个方便的数值计算平台而设计的Matlab是一个交互式的系统,它的基本运算单元是不需指定维数的矩阵,按照IEEE的数值计算标准(能正确

2、处理无穷数Inf(Infinity)、无定义数NaN(not-a-number)及其运算)进行计算系统提供了大量的矩阵及其它运算函数,可以方便地进行一些很复杂的计算,而且运算效率极高Matlab命令和数学中的符号、公式非常接近,可读性强,容易掌握,还可利用它所提供的编程语言进行编程完成特定的工作除基本部分外,Matlab还根据各专门领域中的特殊需要提供了许多可选的工具箱,如应用于自动控制领域的Control System工具箱和神经网络中Neural Network工具箱等第一节Matlab的安装及使用1.1 Matlab的安装Matlab有各种版本,早期有Matlab 1.0 for 386

3、的DOS版本,后来逐步发展这里介绍的版本是Matlab 6.x for Windows因为它使用方便,界面美观,我们选择它作为主要讲解版本Matlab还有许多附加的部分,最常见的部分称为Simulink,是一个用作系统仿真的软件包,它可以让您定义各种部件,定义各自对某种信号的反应方式及与其它部件的连接方式最后选择输入信号,系统会仿真运行整个模拟系统,并给出统计数据Simulink有时是作为Matlab的一部分提供的,称为Matlab with Simulink版本Matlab还有许多工具箱,它们是根据各个特殊领域的需要,用Matlab自身的语言编写的程序集,使用起来非常方便您可以视工作性质和需

4、要购买相应的工具箱常见的工具箱有:Signal Process信号处理System Identification系统辨识Optimization优化Neural Network神经网络Control System自动控制Spline样条Symbolic Math符号代数Image Process图像处理Nonlinear Control非线性控制Statistics统计1.2 Matlab基本用法从Windows中双击Matlab图标,会出现Matlab命令窗口(Command Window),在一段提示信息后,出现系统提示符“”Matlab是一个交互系统,您可以在提示符后键入各种命令,通过上

5、下箭头可以调出以前打入的命令,用滚动条可以查看以前的命令及其输出信息如果对一条命令的用法有疑问的话,可以用Help菜单中的相应选项查询有关信息,也可以用help命令在命令行上查询,您可以试一下help、help help和help eig(求特征值的函数)命令下面我们先从输入简单的矩阵开始掌握Matlab的功能1.2.1输入简单的矩阵输入一个小矩阵的最简单方法是用直接排列的形式矩阵用方括号括起,元素之间用空格或逗号分隔,矩阵行与行之间用分号分开例如输入:A=1 2 3 ; 4 5 6 ; 7 8 0系统会回答A =1 2 34 5 67 8 0表示系统已经接收并处理了命令,在当前工作区内建立了

6、矩阵A大的矩阵可以分行输入,用回车键代替分号,如:A= 1 2 3 4 5 6 7 8 0 结果和上式一样,也是A =1 2 34 5 67 8 01.2.2矩阵元素Matlab的矩阵元素可以是任何数值表达式如:x= -1.3 sqrt(3) (1+2+3)*4/5结果:x = -1.3000 1.7321 4.8000在括号中加注下标,可取出单独的矩阵元素如:x(5)=abs(x(1)结果x = -1.3000 1.7321 4.8000 0 1.3000注:结果中自动产生了向量的第5个元素,中间未定义的元素自动初始为零大的矩阵可把小的矩阵作为其元素来完成,如:A=A; 10 11 12结果

7、A =1 2 34 5 67 8 010 11 12小矩阵可用“:”从大矩阵中抽取出来,如:A=A(1:3,:);即从A中取前三行和所有的列,重新组成原来的A. (详细介绍参见第二节的相关内容)1.2.3语句和变量Matlab的表述语句、变量的类型说明由Matlab系统解释和判断Matlab语句通常形式为:变量=表达式或者使用其简单形式为:表达式表达式由操作符或其它特殊字符、函数和变量名组成表达式的结果为一个矩阵,显示在屏幕上,同时保存在变量中以留用如果变量名和“=”省略,则具有ans名(意思指回答)的变量将自动建立例如:键入1900/81结果为:ans =23.4568需注意的问题有以下几点

8、: 语句结束键入回车键,若语句的最后一个字符是分号,即“;”,则表明不输出当前命令的结果 如果表达式很长,一行放不下,可以键入“”(三个点,但前面必须有个空格,目的是避免将形如“数2 ”理解为“数2.”与“.”的连接,从而导致错误),然后回车 变量和函数名由字母加数字组成,但最多不能超过63个字符,否则系统只承认前63个字符 Matlab变量字母区分大小写,如A和a不是同一个变量,函数名一般使用小写字母,如inv(A)不能写成INV(A),否则系统认为未定义函数1.2.4 who和系统预定义变量输入who命令可检查工作空间中建立的变量,键入:who系统输出为:Your variables ar

9、e:A ans x 这里表明三个变量已由前面的例子产生了但列表中列出的并不是系统全部的变量,系统还有以下内部变量:eps、pi、Inf、NaN变量eps在决定诸如矩阵的奇异性时,可作为一个容许差,容许差的初值为1.0到1.0以后计算机所能表示的下一个最大浮点数,IEEE在各种计算机、工作站和个人计算机上使用这个算法用户可将此值置为任何其它值(包括0值)Matlab的内部函数pinc和rank以eps为缺省的容许差变量pi是,它是用imag(log(-1)建立的.Inf表示无穷大如果您想计算1/0S=1/0结果会是Warning:Divide by zeroS=Inf具有IEEE规则的机器,被零

10、除后,并不引出出错条件或终止程序的运行,而产生一个警告信息和一个特殊值在计算方程中列出来变量NaN表示它是个不定值由Inf/Inf或0/0运算产生要了解当前变量的信息请键入whos,屏幕将显示: Name Size Bytes Class A 4x3 96 double array S 1x1 8 double array ans 1x1 8 double array x 1x5 40 double arrayGrand total is 19 elements using 152 bytes从size及bytes项目可以看出,每一个矩阵实元素需8个字节的内存43的矩阵使用96个字节,全部变量

11、的使用内存总数为152个字节自由空间的大小决定了系统变量的多少,如计算机上有虚拟内存的话,其可定义的变量个数会大大增加1.2.5数和算术表达式Matlab中数的表示方法和一般的编程语言没有区别如:3 -99 0.00019.63972 1.6021E-20 6.02252e23在计算中使用IEEE浮点算法其舍入误差是eps浮点数表示范围是10-30810308数学运算符有: + 加 - 减 * 乘 / 右除 左除 幂这里1/4和41有相同的值都等于0.25(注意比较:14=4)只有在矩阵的除法时左除和右除才有区别1.2.6复数与矩阵在Matlab中输入复数首先应该建立复数单位:i=sqrt(-

12、1)及j=sqrt(-1)之后复数可由下面语句给出:Z=3+4i (注意: 在4与i之间不要留有任何空间!) 输入复数矩阵有两个方便的方法,如:A=1 2; 3 4 + i*5 6; 7 8和 A=1+5i 2+6i; 3+7i 4+8i两式具有相等的结果但当复数作为矩阵的元素输入时,不要留有任何空间,如1+5i,如在“+”号左右留有空格,就会被认为是两个分开的数不过实际使用复数时并没有这么麻烦,系统有一个名为startup.m的Matlab命令文件,建立复数单位的语句也放在其中当Matlab启动时,此文件自动执行,i和j将自动建立1.2.7输出格式任何Matlab语句执行结果都可在屏幕上显示

13、,同时赋给指定的变量,没有指定变量时赋给ans数字显示格式可由format命令来控制(Windows系统下的Matlab系统的数字显示格式可以由Option菜单中的Numerical Format菜单改变)format仅影响矩阵的显示,不影响矩阵的计算与存贮(Matlab以双精度执行所有的运算)首先,如果矩阵元素是整数则矩阵显示就没有小数,如x=-1 0 1,结果为: x= -1 0 1如果矩阵元素不是整数则输出形式有:(用命令:format 格式进行切换)格式中文解释说明format短格式(缺省格式)Default. Same as SHORTformat short短格式(缺省格式)Sca

14、led fixed point format with 5 digits(只显示五位十进制数)format long长格式Scaled fixed point format with 15 digitsformat short e短格式e方式Floating point format with 5 digitsformat long e长格式e方式Floating point format with 15 digitsformat short g短格式g方式Best of fixed or floating point format with 5 digitsformat long g长格式g

15、方式Best of fixed or floating point format with 15 digitsformat hex16进制格式Hexadecimal formatformat +格式The symbols +, - and blank are printed for positive, negative and zero elements. Imaginary parts are ignoredformat bank银行格式Fixed format for dollars and centsformat rat有理数格式Approximation by ratio of sma

16、ll integersformat compact压缩格式Suppress extra line-feedsformat loose自由格式Puts the extra line-feeds back in例如:x=4/3 1.2345e-6在不同的输出格式下的结果为:短格式 1.3333 0.0000短格式e方式 1.3333e+000 1.234e-006长格式 1.333333333333333 0.000001234500000长格式e方式 1.333333333333333e-000 1.23450000000000e-006有理数格式 4/3 1/81004516进制格式 3ff5

17、555555555555 3eb4b6231abfd271+格式 + +对于短格式,如果矩阵的最大元素比数999999999大,或者比数0.0001小,则在打印时,将加入一个普通的长度因数如y=1.e20*x,意为x被1020乘,结果为:?y= 1.0e+020*1.3333 0.0000“+”格式是显示大矩阵的一种紧凑方法,“+”,“-”和空格显示正数、负数和零元素最后format compact命令压缩显示的矩阵,以允许更多的信息显示在屏幕上1.2.8 Help求助命令和联机帮助Help求助命令很有用,它对Matlab大部分命令提供了联机求助信息您可以从Help菜单中选择相应的菜单,打开求

18、助信息窗口查询某条命令,也可以直接用help命令键入help得到help列表文件,键入“help 指定项目”,如:键入help eig则提供特征值函数的使用信息键入help 显示如何使用方括号等键入help help显示如何利用help本身的功能还有,键入lookfor :可以从m文件的help中查找有关的关键字1.2.9 退出和存入工作空间退出Matlab可键入quit或exit或选择相应的菜单中止Matlab运行会引起工作空间中变量的丢失,因此在退出前,应键入save命令,保存工作空间中的变量以便以后使用键入 save则将所有变量作为文件存入磁盘Matlab.mat中,下次Matlab启动

19、时,键入load将变量从Matlab.mat中重新调出save和load后边可以跟文件名或指定的变量名,如仅有save时,则只能存入Matlab.mat中如save temp命令,则将当前系统中的变量存入temp.mat中去,命令格式为:save temp x 仅仅存入x变量save temp X Y Z 则存入X、Y、Z变量load temp可重新从temp.mat文件中提出变量,load也可读ASCII数据文件详细语法见联机帮助第二节向量与矩阵运算Matlab能处理数、向量和矩阵但一个数事实上是一个11的矩阵,1个n维向量也不过是一个1n或n1的矩阵从这个角度上来讲,Matlab处理的所有

20、的数据都是矩阵Matlab的矩阵处理能力是非常灵活、强大的以下我们将从矩阵的产生、基本运算、矩阵函数等几个方面来说明2.1向量及矩阵的生成除了我们在上节介绍的直接列出矩阵元素的输入方法,矩阵还可以通过几种不同的方式输入到Matlab中2.1.1 通过语句和函数产生1. 向量的产生除了直接列出向量元素(即所谓的“穷举法”)外,最常用的用来产生相同增量的向量的方法是利用“:”算符(即所谓的“描述法”)在Matlab中,它是一个很重要的字符如:z=1:5 z = 1 2 3 4 5即产生一个15的单位增量是1的行向量,此为默认情况.用“:”号也可以产生单位增量不等于1的行向量,语法是把增量放在起始量

21、和结尾量的中间如:x=0:pi/4:pi 即产生一个由0pi的行向量,单位增量是pi/4=3.1416/4=0.7854x = 0 0.7854 1.5708 2.3562 3.1416也可以产生单位增量为负数的行向量如:y=6:-1:1y = 6 5 4 3 2 12. 矩阵的产生Matlab提供了一批产生矩阵的函数:zeros产生一个零矩阵diag产生一个对角矩阵ones生成全1矩阵tril取一个矩阵的下三角eye生成单位矩阵triu取一个矩阵的上三角magic生成魔术方阵pascal生成PASCAL矩阵 例如:ones(3)ans = 1 1 1 1 1 1 1 1 1eye(3)ans

22、 = 1 0 0 0 1 0 0 0 1除了以上产生标准矩阵的函数外,Matlab还提供了产生随机(向量)矩阵的函数rand和randn,及产生均匀级数的函数linspace、产生对数级数的函数logspace和产生网格的函数meshgrid等等详细使用请查阅随机文档“ : ”冒号可以用来产生简易的表格,为了产生纵向表格形式,首先用冒号“ : ”产生行向量,再进行转置,计算函数值的列,然后形成有二列的矩阵例如命令:x=(0.0:0.2:3.0);y=exp(-x).*sin(x);x y产生结果为:ans =0 00.2000 0.16270.4000 0.26100.6000 0.30990

23、.8000 0.32231.0000 0.30961.2000 0.28071.4000 0.24301.6000 0.20181.8000 0.16102.0000 0.12312.2000 0.08962.4000 0.06132.6000 0.03832.8000 0.02043.0000 0.00702.1.2 通过后缀为.m的命令文件产生如有文件data.m,其中包括正文:A= 1 2 3 4 5 6 7 8 0则用data命令执行data.m,可以产生名为A的矩阵2.2 矩阵操作在Matlab中可以对矩阵进行任意操作,包括改变它的形式,取出子矩阵,扩充矩阵,旋转矩阵等其中最重要的操

24、作符为“:”, 它的作用是取出选定的行与列例如:A(:,:) 代表A的所有元素;试比较A(:), 将A按列的方向拉成长长的1列(向量);A(:,J) 代表A的第J列;A(J:K) 代表 A(J), A(J+1), , A(K),如同A(:)的第J到第K个元素;A(:,J:K) 代表A(:,J), A(:,J+1), , A(:,K),如此类推.对矩阵可以进行各种各样的旋转、变形、扩充:Matlab中有内部函数fliplr ( Flip matrix in the left/right direction),它对矩阵进行左右旋转.例 x = 1 2 3 fliplr(x)为 3 2 1 4 5

25、6 6 5 4同样有flipud: x = 1 4 flipud(x)为 3 6 2 5 2 5 3 6 1 4矩阵的转置用符号“ ”表示:如A=1 2 3; 4 5 6 ; 7 8 0那么:计算B=AB = 1 4 7 2 5 8 3 6 0符号“ ”为矩阵的转置,如果Z为复矩阵,则Z为它的复数共轭转置,非共轭转置使用Z. 或conj(Z)求得reshape改变矩阵的形状,这是什么意思呢?可举一个例子来说明A=A;10 11 12A = 1 2 3 4 5 6 7 8 0 10 11 12则 reshape(A,2,6)ans = 1 7 2 8 3 0 4 10 5 11 6 12可见,r

26、eshape 是将矩阵元素以列为单位进行重组,原来43的矩阵变为了26的矩阵那么以下的语句也不难理解了,它将矩阵A按列打开(size函数返回矩阵A的行数与列数)reshape(A,1,size(A,1)*size(A,2),它等价于A(:) .还有函数rot90,它可以将矩阵进行各种90度的旋转;tril及triu取出矩阵的下三角及上三角阵等详细的用法可以在需要使用时查阅手册第三节矩阵的基本运算3.1 加和减如矩阵A和B的维数相同,则A+B与A-B表示矩阵A与B的和与差如果矩阵A和B的维数不匹配,Matlab会给出相应的错误提示信息如:A= B= 1 2 3 1 4 7 4 5 6 2 5 8

27、 7 8 0 3 6 0C =A+B返回:C = 2 6 10 6 10 14 10 14 0如果运算对象是个标量(即11矩阵),可和其它矩阵进行加减运算例如:x= -1 y=x-1= -2 0 -1 2 13.2矩阵乘法Matlab中的矩阵乘法有通常意义上的矩阵乘法,也有Kronecker乘法,以下分别介绍3.2.1 矩阵的普通乘法矩阵乘法用“ * ”符号表示,当A矩阵列数与B矩阵的行数相等时,二者可以进行乘法运算,否则是错误的计算方法和线性代数中所介绍的完全相同如:A=1 2 ; 3 4; B=5 6 ; 7 8; C=A*B,结果为C=即Matlab返回:C = 19 22 43 50如

28、果A或B是标量,则A*B返回标量A(或B)乘上矩阵B(或A)的每一个元素所得的矩阵3.2.2 矩阵的Kronecker乘法 对nm阶矩阵A和pq阶矩阵B,A和B的Kronecher乘法运算可定义为: 由上面的式子可以看出,Kronecker乘积AB表示矩阵A的所有元素与B之间的乘积组合而成的较大的矩阵,BA则完全类似AB和BA均为npmq矩阵,但一般情况下ABBA和普通矩阵的乘法不同,Kronecker乘法并不要求两个被乘矩阵满足任何维数匹配方面的要求Kronecker乘法的Matlab命令为C=kron(A,B),例如给定两个矩阵A和B: A= B=则由以下命令可以求出A和B的Kroneck

29、er乘积C:A=1 2; 3 4; B=1 3 2; 2 4 6; C=kron(A,B)C = 1 3 2 2 6 4 2 4 6 4 8 12 3 9 6 4 12 8 6 12 18 8 16 24作为比较,可以计算B和A的Kronecker乘积D,可以看出C、D是不同的:A=1 2; 3 4; B=1 3 2; 2 4 6; D=kron(B,A)D = 1 2 3 6 2 4 3 4 9 12 6 8 2 4 4 8 6 12 6 8 12 16 18 243.3 矩阵除法在Matlab中有两种矩阵除法符号:“”即左除和“”即右除如果A矩阵是非奇异方阵,则AB是A的逆矩阵乘B,即inv(A)*B;而B/A是B乘A的逆矩阵,即B*inv(A)具体计算时可不用逆矩阵而直接计算通常:x

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1