




已阅读5页,还剩85页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Matlab实训,理学院:范静2008/6,前言,Matlab概述,MATLAB概述,MATLAB语言是一种广泛应用于工程计算及数值分析领域的新型高级语言,自1984年由美国MathWorks公司推向市场以来,历经十多年的发展与竞争,现已成为国际公认的最优秀的工程应用开发环境。MATLAB功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。,在欧美各高等院校,MATLAB已经成为线性代数、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等课程的基本教学工具,成为大学生、硕士生以及博士生必须掌握的基本技能。,MATLAB:是英文MATrixLABorotory(矩阵实验室)的缩写。,一.MATLAB特点:,1.数值计算和符号计算功能MATLAB的数值计算功能包括:矩阵运算、多项式和有理分式运算、数据统计分析、数值积分、优化处理等。符号计算将得到问题的解析解。,2.MATLAB语言MATLAB除了命令行的交互式操作以外,还可以程序方式工作。使用MATLAB可以很容易地实现C或FORTRAN语言的几乎全部功能,包括Windows图形用户界面的设计。,3.图形功能MATLAB提供了两个层次的图形命令:一种是对图形句柄进行的低级图形命令,另一种是建立在低级图形命令之上的高级图形命令。利用MATLAB的高级图形命令可以轻而易举地绘制二维、三维乃至四维图形,并可进行图形和坐标的标识、视角和光照设计、色彩精细控制等等。,4.应用工具箱基本部分和各种可选的工具箱。基本部分中有数百个内部函数。其工具箱分为两大类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能、可视建模仿真功能及文字处理功能等。学科性工具箱专业性比较强,如控制系统工具箱、信号处理工具箱、神经网络工具箱、最优化工具箱、金融工具箱等,用户可以直接利用这些工具箱进行相关领域的科学研究。,二.MATLAB集成环境,1.MATLAB的安装和内容选择,2.Desktop操作桌面的启动MATLAB的启动Desktop操作桌面简介,工作区窗口,命令历史窗口,命令窗口,工具栏,菜单栏,3.MATLAB命令窗口(1)命令窗口的菜单栏菜单栏共包含File、Edit、Window和Help四项。File菜单项:New命令:用于建立M文件、图形窗口。Open命令:打开一个已经建立的M文件。RunScript命令:执行一个命令文件。LoadWorkspace命令:将变量装入当前空间。SaveWorkspaceAs命令:把当前工作空间的所有变量用后缀为.mat的文件保存起来。,File菜单项:ShowWorkspace命令:打开变量浏览器。SetPath命令:打开MATLAB的路径浏览器。Preferences命令:打开命令窗口的显示格式。PrintSetup命令:设置打印机的参数。Print命令:打印和设置一些打印参数。PrintSelection命令:打印选中的内容。ExitMATLAB命令:退出MATLAB系统。,Edit菜单项:Undo、Cut、Copy和Paste等命令:分别用于撤销上一次操作、剪切、复制和粘贴。Clear命令:删除内容。SelectAll命令:用于选定所有文本内容。ClearSession命令:清除命令编辑区的全部内容,但并不删除工作空间中的变量。,Help菜单项:HelpWindow命令:打开MATLAB的帮助窗口。HelpTips命令:打开帮助窗口,并首先显示MATLAB的帮助系统的分类和使用方法。HelpDesk(HTML)命令:打开系统WWW浏览器,并显示MATLAB的帮助桌面。ExamplesandDemos命令:可以通过演示MATLAB提供的例子来熟悉相关部分的用法。AboutMATLAB命令:打开关于MATLAB的版本和版权等信息。Subsribe命令:打开机器上的WWW浏览器,用户可过填写相关的表格来获得MathWorks公司的产品。,Window菜单项:利用Window菜单项可以查看目前MATLAB打开的所有窗口,并可选中某个窗口为当前窗口,从而实现在不同窗口之间的转换。,(2)命令窗口的工具栏工具栏提供了一些命令按钮,使用命令按钮可使操作更快捷、更方便。,新建,打开,剪切,复制,粘贴,撤销,恢复,Simulink:打开Simulink,Simulink是一个用来对动态系统进行建模、仿真和分析的软件包,它支持连续、离散及两者混合的线性和非线性系统,也支持具有多种采样频率的系统。,Guide:快速启动Guide,Guide全称为GraphicalUserInterfacedevelopmentenvironment,用于辅助设计图形用户接口,使用该工具可以简化GUI编程。,Profiler:快速启动Profiler工具,Profiler工具能够分析出程序运行时间消耗情况,用于帮助分析、改进M文件,Help:打开MATLAB帮助;,CurrentDirectory:设置当前目录,(3)命令窗口的命令编辑区命令编辑区用于输入命令和显示计算结果。键入命令并按下回车键后,MATLAB就会解释执行所输入的命令,并在命令后面给出计算结果。例如:在MATLAB命令窗口输入命令:a=1,1.5,2,9,7;0,3.6,0.5,-4,4;7,10,-3,22,33;3,7,8.5,21,6;3,8,0,90,-20将显示一个5*5矩阵。,MATLAB命令窗口。打开MATLAB时,命令窗口自动显示于MATLAB界面中。,运算提示符,表示MATLAB处于准备状态,用户可以输入命令,按下回车键执行,并在命令窗口中显示运行结果,(4)命令历史窗口,默认情况下命令历史窗口位于左下角,显示用户曾经输入过的命令,并显示输入的时间,方便用户查询。对于命令历史窗口中的命令,用户可以点击右键进行相应的操作。用户可以双击再次执行命令窗口中的命令。,命令历史窗口,(5)工作区窗口,工作区窗口与当前路径窗口共享一块空间,可以通过标签显示或隐藏。工作区窗口中显示当前工作区中的所有变量及其大小和类型等。通过工作区可以对这些变量进行管理。其中包含了工作区工具栏和显示窗口。通过工具栏可以新建或删除变量、导入导出数据、绘制变量的图形等。另外右键单击变量名可以对该变量进行操作。,工作区窗口,(6)当前路径窗口,当前路径窗口显示当前路径下的所有文件和文件夹及其相关信息,并且可以通过当前路径工具栏或右键菜单对这些文件进行操作。,当前路径窗口,路径设置除MATLAB默认的搜索路径外,用户可以设置搜索路径。设置方法为:选择MATLAB窗口中的File|SetPath命令,进入路径搜索对话框。,添加选中目录,添加选中目录及其子目录,(7)MATLAB帮助系统MATLAB里有以下几种方法可获得帮助:帮助命令、帮助窗口、MATLAB帮助桌面或在线帮助页。对于Internet用户,还可直接链接到MathWorks公司的网页上()寻求帮助。,4.MATLAB的退出要退出MATLAB系统,有三种方法:(1)单击MATLAB命令窗口的“关闭”按钮。(2)在命令窗口File菜单中选ExitMATLAB命令。(3)在MATLAB命令窗口输入Exit和Quit命令。在MATLAB中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多19个字符,且区分字母的大小写。MATLAB提供的标准函数名必须用小写字母。,三.数学运算及数据变量,1.简单的数学运算(1/5),最简单的计算器使用法直接输入法存储变量法,1.简单的数学运算(2/5),表达式书写规则在大多数情况下,MATLAB对空格不予处理,因此在书写表达式时,可以利用空格调整表达式的格式,使表达式更易于阅读。在MATLAB表达式中,遵守四则运算法则,与通常法则相同。即运算从左到右进行,乘法和除法优先于加减法,指数运算优先于乘除法,括号的运算级别最高;在有多重括号存在的情况下,从括号的最里边向最外边逐渐扩展。需要注意的是,在MATLAB中只用小括号代表运算级别,中括号只用于生成向量和矩阵,花括号用于生成单元数组。,1.简单的数学运算(3/5),MATLAB的数学运算符需要注意的是,右除和左除的意义并不相同。右除为常规的除法,而左除的意义为:ab=b/a。,1.简单的数学运算(4/5),标点符号的使用在MATLAB中,标点符号有着充分的意义,可以用标点符号进行运算,或者标点符号可以包含特定的意义。,1.简单的数学运算(5/5),分号(;)分号用于区分数组的行,或者用于一个语句的结尾处,取消运行显示。百分号(%)该符号用于在程序文本中添加注释,增加程序的可读性。百分号之后的文本都将视作注释,系统不对其进行编译。,2.MATLAB中的常用数学函数,MATLAB提供了一系列的函数支持基本的数学运算,这些函数中的大多数调用格式和我们平时的书写习惯一致,方便用户记忆和书写。,2.常用的操作命令和快捷键(1/3),为方便用户操作,MATLAB中定义了一些快捷键。掌握一些常用的操作命令和快捷键,可以使得对MATLAB的操作更加便利。,2.常用的操作命令和快捷键(2/3),常用的操作命令,2.常用的操作命令和快捷键(3/3),常用的操作快捷键,3.MATLAB的数据类型,整数浮点数复数逻辑变量各种数据类型之间的运算各种数据类型之间的转换数据类型操作函数,数据类型操作函数,其中的type包括numeric、integer、float和所有的数据类型。,整数,MATLAB支持8位、16位、32位和64位的有符号和无符号整数数据类型。上述整数数据类型除了定义范围不同外,具有相同的性质。,定义整数变量,定义变量:由于MATLAB默认的数据类型为双精度型,因此在定义整形变量时,需指定变量的数据类型。,整数运算(1/2),运算:类型相同的整数之间可以进行运算,返回相同类型的结果。在进行加、减和乘法运算时比较简单,在进行除法运算时稍微复杂一些,因为在多精度情况下,整数的除法不一定能得到整数的结果。在进行除法时,MATLAB首先将两个数视为双精度类型进行运算,然后将结果转化为相应的整形数据。MATLAB中不允许进行不同整数类型之间的运算。,整数运算(2/2),由于每种整数数据类型都有相应的取值范围,因此数学运算有可能产生结果溢出。MATLAB利用饱和处理处理此类问题,即当运算结果超出了此类数据类型的上限或下限时,系统将结果设置为该上限或下限。例1整数运算中的数据溢出x=int8(100);y=int8(90);z=x+yz=127x-3*yans=-27x-y-y-yans=-128,结果溢出上限,因此结果为127,3*y溢出上限,结果为127,继续计算,得到最后结果-27,计算x-y-y-y时,从左到右进行计算,结果溢出下限,因此结果为-128,浮点数(1/2),MATLAB的默认数据类型是双精度类型(double)。为了节省存储空间,MATLAB也支持单精度数据类型的数组。单精度和双精度数据类型的取值范围和精度可以通过例2的方式进行查看,浮点数(2/2),例2-11单精度和双精度数据类型的取值范围和精度realmin(single)ans=1.1755e-038realmax(single)ans=3.4028e+038eps(single)ans=1.1921e-007realmin(double)ans=2.2251e-308realmax(double)ans=1.7977e+308eps(double)ans=2.2204e-016创建单精度类型的变量时需要声明变量类型,与创建整型变量类似。单精度数据类型的数据进行运算时,返回值为单精度。,复数,复数由两个部分组成:实部和虚部。基本虚数单位等于,在MATLAB中虚数单位由i或者j表示。MATLAB中可以通过两种方法创建复数,第一种方法为直接输入法,另一种创建复数的方法为通过complex函数。,复数,complex函数的调用方法如下。c=complex(a,b),返回结果c为复数,其实部为a,虚部为b。输入参数a和b可以为标量,或者维数、大小相同的向量、矩阵或者多维数组,输出参数和a和b的结构相同。a和b可以有不同的数据类型,当a和b为各种不同的类型时,返回值分别为:当a和b中有一个为单精度时,返回结果为单精度;如果a和b其中一个为整数类型,则另外一个必须有相同的整数类型,或者为双精度型,返回结果c为相同的整数类型。c=complex(a),只有一个输入参数,返回结果c为复数,其实部为a,虚部为0。但是此时c的数据类型为复数。,逻辑数组(1/5),逻辑数据类型通过1和0分别表示逻辑真和逻辑假。一些MATLAB函数或操作符会返回逻辑真或逻辑假表示条件是否满足。如表达式(5*10)40返回逻辑真。在MATLAB中,存在逻辑数组,如下面的表达式返回逻辑数组:304050607040ans=00111,逻辑数组(2/5),逻辑数组的创建创建逻辑数组的最简单的方法为直接输入元素的值为true或者false逻辑数组也可以通过逻辑表达式生成,逻辑数组(3/5),MATLAB中返回逻辑值的函数和操作符,逻辑数组(4/5),逻辑数组的应用用于条件表达式如果仅当条件成立时执行某段代码,可以应用逻辑数组进行判断和控制用于数组索引在MATLAB中支持通过一个数组对另一个数组进行索,逻辑数组(5/5),逻辑数组的判断MATLAB中提供了一组函数用于判断数组是否为逻辑数组,各种数据类型之间的转换,在MATLAB中,各种数据类型之间可以互相转化,转化方式为:1)datatype(variable),其中datatype为目标数据类型,variable为待转化的变量;2)cast(x,type),将x的类型转化为type指定的类型。转化时,如果由高精确度数据类型转化为低精确度数据类型,则对数据进行四舍五入;如果由定义范围大的数据类型转化为定义范围小的数据类型,则返回目标数据类型的上限或下限。,4.变量,MATLAB的变量命名规则与其他计算机语言类似,这一节介绍MATLAB的命名规则。首先,变量名必须是一个单一的词,不能包含空格,另外其命名必须符合下列规则:(1)变量名区分大小写。如pi和Pi是两个不同的变量。(2)变量名长度不超过31个字符,超过的部分将会被忽略。(3)变量名必须以字母开始,其后可以为字母、数字或者下划线。MATLAB中的变量名不支持其他符号,因为其他符号在MATLAB中具有特殊的意义。,复数i,j预定义变量pi圆周率3.1415eps浮点数识别精度2.2210-16realmin最小正实数2.225110-308realmax最大正实数1.797710308Inf无穷大NaN不定值,MATLAB2007b的操作符,关系运算符MATLAB的关系运算符能用来比较两个相同大小的数组,或用来比较一个数组和一个标量。MATLAB的关系运算符包括所有常用的比较运算符,如表所示,逻辑运算符,逻辑运算符主要包括“与”、“或”和“非”。使用逻辑运算符可以将多个表达式组合在一起,或者对关系表达式取反。MATLAB中的逻辑运算符如表所示。,运算符优先级,MATLAB在执行含有关系运算和逻辑运算的数学运算时,同样遵循一套优先级原则。MATLAB首先执行具有较高优先级的运算,然后执行具有较低优先级的运算;如果两个运算的优先级相同,则按从左到右的顺序执行。MALTAB中各运算符的优先级顺序如表所示,表中按照优先级从高到低的顺序排列各运算符。,4.数据和变量,向量、矩阵的创建,实训一,日常矩阵及其运算,矩阵应用实例:榄球防护用品的生产管理,应用问题,一个工厂生产三种橄榄球用品:防护帽、垫肩、臀垫。需要不同数量的:硬塑料、泡沫塑料尼龙线、劳动力。为监控生产,管理者对它们之间的关系十分关心。为把握这些量的关系,他列出下面的表,原料产品关系表,订单,管理者接到四份订单如上表所示。问应该如何计算每份订单所需的原材料,以便组织生产?,将表格写成矩阵形式,计算,输入下面Matlab指令A=423;132;133;322,B=35206045;10155040;20124520C=A*B请自行计算观看结果,Matlab基本指令,向量的创建和运算,1.直接输入向量,x1=124,x2=1,2,1,x3=x1,x4=1;2;3运行结果x1=124x2=121x3=x4=112243,2.冒号创建向量,x1=3.4:6.7,x2=3.4:2:6.7x3=2.6:-0.8:0运算结果x1=3.40004.40005.40006.4000 x2=3.40005.4000 x3=2.60001.80001.00000.2000,3.生成线性等分向量,指令x=linspace(a,b,n)在a,b区间产生n个等分点(包括端点)x=linspace(0,1,5)结果x=00.25000.50000.75001.0000,向量的运算,设x=x1x2x3;y=y1y2y3;为两个三维行向量,a,b为标量。向量的数乘:a*x=a*x1a*x2a*x3向量的平移:x+b=x1+bx2+bx3+b向量和:x+y=x1+y1x2+y2x3+y3向量差:x-y=x1-y1x2-y2x3-y3数的乘幂:如a2,元素群运算(四则运算),x.*y=x1*y1x2*y2x3*y3(元素群乘积)x./y=x1/y1x2/y2x3/y3(元素群右除,右边的y做分母)x.y=y1/x1y2/x2y3/x3(元素群左除,左边的x做分母)x.5=x15x25x35(元素群乘幂)2.x=2x12x22x3(元素群乘幂)x.y=x1y1x2y2x3y3(元素群乘幂),数组的查找,数组的查找函数是find,它能够查找数组中的非零数组元素,并返回其数组索引值。find函数在MATLAB中的使用语法形式:(1)a=find(A)返回数组A中非零元素的单下标索引(2)a,b=find(A)返回数组A中非零元素的双下标索引放方式。,元素群运算(函数计算),Matlab有许多内部函数,可直接作用于向量产生一个同维的函数向量。x=linspace(0,4*pi,100);(产生100维向量x)y=sin(x);(y也自动为100维向量)y1=sin(x).2;y2=exp(-x).*sin(x);观察结果,创建矩阵(数值矩阵的创建),直接输入法创建简单矩阵。A=1234;5678;9101112B=-1.3,sqrt(3);(1+2)*4/5,sin(5);exp(2),6观察运行结果,生成特殊矩阵,全1阵ones(n),ones(m,n),ones(size(A)全零阵:zeros(n),zeros(m,n),zeros(size(A)常常用于对某个矩阵或向量赋0初值单位阵:eye(n),eye(m,n)随机阵:rand(m,n),rand(n)=rand(n,n)用于随机模拟,数字在01间,满足均匀分布,常和rand(seed,k)配合使用。,生成特殊矩阵,将rand指令运行多次,观察结果。程序:y1=rand(1,5),y2=rand(1,5),rand(seed,3),x1=rand(1,5),rand(seed,3),x2=rand(1,5)结果,size(A)返回一个二元素向量,第一个元素为A的行数,第二个元素为A的列数;size(A,1)返回A的行数;size(A,2)返回A的列数;length(A)返回max(size(A);flipud(A)矩阵作上下翻转;fliplr(A)矩阵作左右翻转;diag(A)提取A的对角线元素,返回列向量;diag(v)以向量v做对角元素创建对角矩阵;,矩阵操作函数,创建矩阵(符号矩阵的创建),用指令“syms”说明符号变量。symsa11a12a13a14a21a22a23a24a31a32a33a34b11b12b13b14b21b22b23b24b31b32b33b34A1=a11a12a13a14;a21a22a23a24;a31a32a33a34,B1=b11b12b13b14;b21b22b23b24;b31b32b33b34运行,矩阵的运算(矩阵的加减、数乘、乘积),C=A1+B1D=A1-B1symsc,cA=c*A1A2=A1(:,1:3),B1G=A2*B1,矩阵的运算(矩阵的加减、数乘、乘积),A,A_trans=AH=123;210;123,K=123;210;231h_det=det(H),k_det=det(K),H_inv=inv(H),K_inv=K-1,矩阵的运算(左除和右除),左除“”:求矩阵方程AX=B的解;(A、B的行要保持一致)解为X=AB;当A为方阵且可逆时有X=AB=inv(A)*B;右除“/”:求矩阵方程XA=B的解(A、B的列要保持一致)解为X=B/A,当A为方阵且可逆时有X=B/A=B*inv(A),矩阵的运算(左除和右除),求矩阵方程:设A、B满足关系式:AB2B+A,求B。其中A=301;110;014。解:有(A-2I)BA程序:A=301;110;014;B=inv(A-2*eye(3)*A,B=(A-2*eye(3)A观察结果:,分块矩阵(矩阵的标识),1.矩阵元素的标识:A(i,j)表示矩阵A的第i行j列的元素;采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就是相应元素在内存中的排列顺序。在MATLAB中,矩阵元素按列存储,先第一列,再第二列,依次类推。例如A=1,2,3;4,5,6;A(3)ans=22.向量标识方式A(vr,vc):vr=i1,i2,ik、vc=j1,j2,ju分别是含有矩阵A的行号和列号的单调向量。A(vr,vc)是取出矩阵A的第i1,i2,ik行与j1,j2,ju列交叉处的元素所构成新矩阵。,分块矩阵(矩阵的标识),取出A的1、3行和1、3列的交叉处元素构成新矩阵A1程序A=10112;01-123;30510;23121,vr=1,3;vc=1,3;A1=A(vr,vc)观察结果,分块矩阵(矩阵的标识),将A分为四块,并把它们赋值到矩阵B中,观察运行后的结果。程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 舞蹈培训室转让协议书
- 带持有股权协议书
- 互联网基金超市企业制定与实施新质生产力项目商业计划书
- 环保型橡胶硫化助剂企业制定与实施新质生产力项目商业计划书
- 考试代报名协议书
- 房管所征收协议书
- 高速列车牵引变流器行业深度调研及发展项目商业计划书
- 高空特效焰火表演系统企业制定与实施新质生产力项目商业计划书
- 养生蒸菜快捷店行业深度调研及发展项目商业计划书
- 神经退行性疾病药物行业深度调研及发展项目商业计划书
- 雇人包工免责协议书
- 2025届高三5月份全国各地联考文言文阅读分类汇编(解析版)
- 土建项目分包协议书
- 吐鲁番市高昌区招聘社区工作者考试真题2024
- 山东省济南市2025届高三三模历史试卷(含答案)
- 2025年中考道法答题技巧与模板构建专题08主观题答题技巧(观点概括类试)(学生版+解析)
- 2024-2025学年广东省深圳市高一数学下学期7月期末考试(附答案)
- “教-学-评”一体化下初中英语写作教学评价措施
- 2025团员考试试题及答案
- 2025年软件测试工程师考试题及答案
- 血管内导管相关性血流感染预防与诊治指南(2025)解读课件
评论
0/150
提交评论