Matlab基础知识的教案_第1页
Matlab基础知识的教案_第2页
Matlab基础知识的教案_第3页
Matlab基础知识的教案_第4页
Matlab基础知识的教案_第5页
已阅读5页,还剩234页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Matlab基础知识的教案第1页/共239页提要Matlab语言的发展Matlab语言的特征Matlab应用领域Matlab具体功能Matlab基础操作2023年3月16日2第2页/共239页Matlab语言的发展Matlab语言是由美国的CleveMoler博士于1980年开发数学家和软件专家组建了Mathworks软件开发公司。专门扩展并改进Matlab语言2023年3月16日3第3页/共239页Matlab语言的发展1984年推出了该软件的正式版本1992年推出了划时代的4.0版本1997年推出了windows95下的5.0版本,实现了真正的32位计算,数值计算速度更快2003年推出了全新的6.5.1版本2004年7月推出新版本,Realease14(Matlab7.0)此后MathWorks公司每年进行两次产品发布(3月和9月)。每次发布都包含所有模块2023年3月16日4第4页/共239页Matlab语言的发展在R2006a中(MATLAB7.2,Simulink6.4),主要更新了10个模块、增加350个新特性、增加了对64位Windows的支持,并新推出了.net工具箱2006年9月,MATLABR2006b正式发布2007年3月1日,MatlabR2007a发布2008.10.9

MATLAB2008a2009.03.6

MATLAB2009a…2023年3月16日5Mathworks公司官网:/products/new_products/latest_features.html第5页/共239页Matlab语言的发展设计者的初衷是为解决“线性代数”课程的矩阵运算问题MATLAB即MatrixLaboratory,矩阵实验室的意思MATLAB已经不仅仅是一个“矩阵实验室”了,它集科学计算、图象处理、声音处理于一身,并提供了丰富的Windows图形界面设计方法MATLAB语言是功能强大的计算机高级语言,它以超群的风格与性能风靡全世界,成功地应用于各工程学科的研究领域2023年3月16日6第6页/共239页Matlab语言的特征MATLAB在美国已经作为大学工科学生必修的计算机语言之一(C,FORTRAN,ASSEMBLER,MATLAB),被称为第四代编程语言近年来,MATLAB语言已在我国推广使用,现在已应用于各学科研究部门和许多高等院校我校开设情况:计算中心、通信学院、计算机学院、机自学院、理学院、土木系2023年3月16日7第7页/共239页Matlab语言的特征语言简洁紧凑,语法限制不严,程序设计自由度大既具有结构化的控制语句,又有面向对象编程的特性运算符、库函数丰富界面友好、编程效率高源程序的开放性,扩展性强,可移植性好功能强大的工具箱是MATLAB的另一特色2023年3月16日8缺点:和其他高级程序相比,程序的执行速度较慢第8页/共239页Matlab语言的特征与C语言相比高质量、高可靠的数值计算能力基于向量、数组、矩阵的高级程序设计语言高级图形和可视化数据处理能力广泛解决各学科专业领域内复杂问题的能力拥有强大的非线性系统仿真工具箱2023年3月16日9第9页/共239页Matlab应用领域科学研究与开发数学教学,特别是线性代数数值分析和科学计算方面的教学与研究电子学、控制理论和物理学等工程和科学经济学、化学和生物学等计算问题的所有其他领域中的教学与研究2023年3月16日10第10页/共239页Matlab具体功能强大的数值(矩阵)运算功能计算结果的可视化功能应用灵活的兼容与接口功能信息量丰富的联机检索功能经济学、化学和生物学等计算问题的所有其他领域中的教学与研究2023年3月16日11第11页/共239页Matlab具体功能MATLAB提供了丰富的矩阵运算处理功能,是基于矩阵运算的处理工具变量矩阵,运算矩阵的运算例如C=A+B,A,B,C都是矩阵,是矩阵的加运算即使一个常数,Y=8,MATLAB也看做是一个11的矩阵2023年3月16日121.矩阵运算功能第12页/共239页3x1+x2-x3=3.6x1+2x2+4x3=2.1-x1+4x2+5x3=-1.4A=[31-1;124;-145];B=[3.6;2.1;-1.4];AX=B用一个简单命令求解线性系统第13页/共239页X=A\B(左除)X=1.4818-0.46060.3848第14页/共239页Matlab具体功能具有高层绘图功能——两维、三维绘图具有底层绘图功能——句柄绘图使用plot函数可随时将计算结果可视化2023年3月16日152.丰富的绘图功能与计算结果可视化第15页/共239页绘制matlab图标loadlogosurf(L,R)colormap(M)title(‘matlab图标’)axisoff2.丰富的绘图功能与计算结果的可视化(Cont.)第16页/共239页2.丰富的绘图功能与计算结果的可视化(Cont.)第17页/共239页用简短命令计算并绘制在0x6范围内的sin(2x),sinx2,(sin(x))2x=linspace(0,6);y1=sin(2*x);y2=sin(x.^2);y3=(sin(x)).^2;plot(x,y1,x,y2,x,y3)2.丰富的绘图功能与计算结果的可视化(Cont.)第18页/共239页2.丰富的绘图功能与计算结果的可视化(Cont.)第19页/共239页画出衰减振荡曲线及它的包络线t=0:pi/50:4*pi;y0=exp(-t/3);y=exp(-t/3).*sin(3*t);plot(t,y,’-r’,t,y0,’:b’,t,-y0,’:b’)grid第20页/共239页第21页/共239页用四种方法描述cos(x)*sin(y)图形第22页/共239页Matlab具体功能动态系统进行建模、仿真和分析的软件包用结构图编程,而不用程序编程只需拖几个方块、连几条线,即可实现编程功能2023年3月16日233.图形化程序编制功能第23页/共239页第24页/共239页Matlab具体功能MATLAB主工具箱符号数学工具箱SIMULINK仿真工具箱控制系统工具箱信号处理工具箱图像处理工具箱通讯工具箱系统辨识工具箱神经网络工具箱…2023年3月16日254.丰富的Matlab工具箱第25页/共239页Matlab具体功能2023年3月16日264.丰富的Matlab工具箱许多学科,在MATLAB中都有专用工具箱,现已有30多个工具箱,但MATLAB语言的扩展开发还远远没有结束,各学科的相互促进,将使得MATLAB更加强大第26页/共239页显示图像

%土星I=imread(‘saturn.tif’)imshow(I)4.丰富的Matlab工具箱(Cont.)第27页/共239页图像加噪J=imnoise(I,‘gaussian’)imshow(J)4.丰富的Matlab工具箱(Cont.)第28页/共239页图像去噪K=wiener2(J,[5,5])imshow(K)4.丰富的Matlab工具箱(Cont.)第29页/共239页Matlab具体功能可与C、FORTRAN、FPGA跨平台兼容用动态连接子程序CMEX、FMEX实现2023年3月16日305.Matlab的兼容功能第30页/共239页非法操作时,给出提示,并不影响其操作1/0Warning:Dividebyzeroans=Inf6.Matlab的容错功能第31页/共239页Matlab具体功能Matlab所有函数都是开放的用户可按自己意愿随意更改正因为此功能,使得Matlab的应用越来越广泛2023年3月16日327.Matlab的开放式可扩充结构第32页/共239页Matlab具体功能可随时检索matlab函数可随时查询matlab函数的使用方法help,lookfor,demo2023年3月16日338.强大的联机检索帮助系统第33页/共239页Matlab具体操作开机执行程序c:\matlab\bin\matlab.exe用鼠标双击matlab图标即可打开matlab命令平台2023年3月16日34启动Matlab第34页/共239页第35页/共239页Matlab具体操作指令窗(commandwindow),是进行各种Matlab操作的最主要窗口,在该窗口内,可健入送给Matlab运作的指令、函数、表达式;显示图形外的所有结果历史指令窗(commandhistory),该窗口记录已经运作过的指令、函数、表达式,允许用户对它们进行选择复制、重运行、及产生M文件当前目录浏览器(currentdirectorybrowser),在此交互界面中,可进行当前目录的设置,展示相应目录上的M、MDL等文件,复制、编辑、运行M文件,装载MAT数据文件2023年3月16日36通用操作界面第36页/共239页Matlab具体操作工作空间浏览器(workspacebrowser),该窗口列出Matlab工作空间中所有的变量名、大小、字节数,在该窗口中,可对变量进行观察、编辑、提取和保存M文件编辑/调试器(editor/debugger),当打开文件的操作时,该窗口就启动2023年3月16日37通用操作界面第37页/共239页工作窗出现以后,即可进行各种操作待机状态第38页/共239页Matlab具体操作与Windows的窗口界面类似,有菜单项File、Edit、View、Web、Windows、Help等项可以选择2023年3月16日39Matlab界面第39页/共239页Matlab具体操作2023年3月16日40菜单项File,其功能如下

New 建立新文件

Open 打开M-文件

Importdata 导入数据

SaveWorkspaceAs 将工作区存为

Setpath 设置路径

Preference属性设置

Print 打印

ExitMATLAB退出MATLAB

第40页/共239页Matlab具体操作2023年3月16日41菜单项File,其功能如下第41页/共239页Matlab具体操作Matlab是一个高度集成的语言环境,在其工作空间中可以编写程序、运行程序、并跟踪调试程序Who命令可以检查在工作空间中键入的变量名Whos命令可以显示当前每个变量的详细信息,给出实矩阵的大小如A是一个3*3的实矩阵,而实矩阵每个元素需要8个字节内存,因此3*3的实矩阵占用72个字节2023年3月16日42Matlab工作空间第42页/共239页Matlab文件管理命令dir(ls)列出当前目录下所有的文件cd改变当前工作目录type可显示指定文件的全部内容delete删除指定文件what列出当前目录中所有m文件which(path)列出指定文件所在的目录2023年3月16日43第43页/共239页Matlab文件管理命令dir可显示当前目录下的所有文件dirc:\matlabdirc:\matlab\*.m2023年3月16日441.dir—

列出指定目录下的文件和子目录清单(ls)第44页/共239页Matlab文件管理命令cd——显示当前子目录cdc:\matlab\toolbox——进入指定目录cd..——退出当前子目录到上一级目录cd\——回到根目录2023年3月16日452.cd—可改变当前工作目录第45页/共239页Matlab文件管理命令typemyfile.m与dos下的用法完全一样2023年3月16日463.type—

可显示指定文件的全部内容第46页/共239页Matlab文件管理命令deleteabc删除当前目录下的abc文件deletec:\matlab\aaa.m注意:只可删除用户文件,其它文件不要轻易删除,否则系统会瘫痪2023年3月16日474.delete—删除指定文件第47页/共239页Matlab文件管理命令what列出当前目录中所有m文件相当于命令dirc:\matlab\*.m2023年3月16日485.what—显示目录中的文件第48页/共239页Matlab文件管理命令which

列出指定文件所在的目录whichexam0.m显示exam0.m所在的路径2023年3月16日496.which列出指定文件所在的目录第49页/共239页Matlab文件管理命令path

路径函数,显示Matlab启动时设定的搜索路径path(path,’d:\persoanl\course\matlab’),临时纳入搜索路径addpath(‘d:\perconal\course\matlab’),添加一个新目录到搜索路径rmpath(‘d:\perconal\course\matlab’),从搜索路径里删除一个路径2023年3月16日507.path路径编辑命令第50页/共239页Matlab的变量与数据作用都是列出在Matlab工作空间中已经驻留的变量名清单不同的是,whos在给出驻留变量的同时,还给出他们的维数及性质2023年3月16日511.变量查询函数who与whos第51页/共239页Matlab的变量与数据变量命名规则:变量区分大小写;每个变量最多包含63个字符;变量名的首字符必须是字母永久变量:在Matlab工作内存中,驻留了几个由系统本身在启动时定义的变量,我们称为永久变量永久变量用who指令是查看不到的,只可随时调用2023年3月16日522.变量命名规则和永久变量第52页/共239页Matlab的变量与数据eps—容差变量,定义为1.0到最近浮点数的距离,在pc机上=2-52pi—圆周率的近似值3.1415926inf或Inf—表示正无穷大,定义为1/0NaN

—非数,它产生于0×,0/0,/

等运算i,j—虚数单位ans—对于未赋值运算结果,自动赋给ans2023年3月16日532.变量命名规则和永久变量第53页/共239页Matlab的变量与数据数据显示格式可由format命令来控制format命令只影响数值如何被显示,不影响其计算和存取Matlab总是用双精度执行所有运算2023年3月16日543.数据输出格式第54页/共239页Matlab的变量与数据formatlong长格式formatshort短格式formatlonge长格式e方式formatshorte短格式e方式formathex16进制格式formatbank银行格式format+紧密格式formatrat分数格式2023年3月16日553.数据输出格式第55页/共239页Matlab的变量与数据选择Options\NumericFormat(数字显示格式)可以得出下一级子菜单,允许用户设置Matlab下结果数据的显示格式可从中选择Short(默认的简洁格式)和Long(高精度格式)等2023年3月16日563.数据输出格式第56页/共239页Matlab的变量与数据2023年3月16日57设定数据格式File/Preferences第57页/共239页Matlab的变量与数据Matlab采用的是表达式语言,用户输入的语句由Matlab系统解释运行Matlab语句是由表达式和变量组成的。表达式或变量=表达式表达式由运算符、函数、变量名和数字组成在书写表达式时,运算符两侧允许有空格,以增加可读性。表达式末尾可以加“;”,也可以不加2023年3月16日584.Matlab的表达式第58页/共239页Matlab的变量与数据数字的表达式采用十进制表示,可以带小数点和负号,也可以采用科学计数法数值的相对精度eps=2-52数值的表示范围10-308~103082023年3月16日594.Matlab的表达式第59页/共239页Matlab的变量与数据Matlab常用算符+加法;-减法;^幂*乘法;/右除;\左除提示:%在matlab中表示注释符。同一行中数条语句可以用“,”或“;”分割开来。用“…”表示续行,在“…”前要留有空格2023年3月16日604.Matlab的表达式第60页/共239页Matlab联机帮助命令help、lookfor两个指令构成了Matlab语言相当完善的在线帮助查询系统虽然help可以随时提供帮助,但必须知道准确的函数名称。当不能确定函数名称时,help就无能为力了2023年3月16日61第61页/共239页Matlab联机帮助命令help功能提供Matlab大部分主题的在线帮助信息help

显示help

主题一览表helpplot

显示有关做图指令帮助信息help[

显示特殊字符与符号帮助信息helphelp

显示help的帮助信息2023年3月16日62第62页/共239页Matlab的演示功能lookfor函数—它可提供通过一般的关键词,搜索出一组与之相关的命令lookforfourier寻找含有傅立叶变换的相关指令lookforfouri

寻找所有包含fouri的指令和注释,如FFTDiscreteFouriertransform2023年3月16日63第63页/共239页Matlab联机帮助命令2023年3月16日64demo

在线演示第64页/共239页2023/3/1665第2部分Matlab数值计算——Matlab数值计算第65页/共239页2023/3/1666Matlab具有出色的数值计算能力,占据世界上数值计算软件(Maple、Mathmatica、MathCAD)的主导地位。第66页/共239页2023/3/1667数值运算的功能创建矩阵矩阵运算多项式运算线性方程组数值统计线性插值函数优化微分方程的数值解67第67页/共239页2023/3/1668一、矩阵的创建Matlab中矩阵是运算的基本单元,该单元是定义在复数域上的矩阵元素可以是任何matlab表达式,可以是实数,也可以是复数,复数可用特殊函数i或j表示Matlab中所有的矩阵事先都不必定义维数大小,系统会根据用户的输入自动配置,在运行中自动调整矩阵的维数68第68页/共239页2023/3/1669一、矩阵的创建以直接列出元素形式输入通过语句和函数产生从外部文件装入建立在M文件中69矩阵可以通过以下几种形式创建第69页/共239页2023/3/1670一、矩阵的创建当需要的矩阵维数比较小矩阵元素必须用[]括住矩阵元素必须用逗号或空格分隔在[]内矩阵的行与行之间必须用分号或用enter健分隔701.直接输入第70页/共239页2023/3/1671一、矩阵的创建711.直接输入a=[123;456]b=[1,2,3;4,5,6]c=[1,2,34,5,6]

矩阵中的元素可以数字或表达式,但表达式中不可含未知变量。x=[2pi/2;sqrt(3)3+5i] 第71页/共239页2023/3/1672一、矩阵的创建matlab允许多条语句在同一行出现,逗号和分号可作为指令间的分隔符分号如果出现在指令后,屏幕上将不显示结果722.符号的作用注意:只要是赋过值的变量,不管是否在屏幕上显示过,都存储在工作空间中,以后可随时显示或调用。变量名尽可能不要重复,否则会覆盖。

第72页/共239页2023/3/1673一、矩阵的创建冒号的作用(n:s:m)产生从n到m步长(公差)为s的一系列的值。s可以是正数、负数、小数,默认值是1用于选出矩阵指定行、列的元素循环语句732.符号的作用第73页/共239页2023/3/1674一、矩阵的创建742.符号的作用A=[1:3;1:2:5;0.3:0.1:0.5]A=1.00002.00003.00001.00003.00005.00000.30000.40000.5000第74页/共239页2023/3/1675A=[123;456;789]C=A(:,[2,3])C=235689B=A(1,:)B=123D=A(:,:)D=123456789符号的作用(cont.)第75页/共239页2023/3/1676例:利用for循环求1!+2!+3!++5!的值

sum=0;

fori=1:5pdr=1;

fork=1:ipdr=pdr*k;

endsum=sum+pdr;

end第76页/共239页2023/3/1677一、矩阵的创建Matlab提供了大量的函数用于创建一些常用的矩阵对角阵、单位阵、零矩阵等在数值计算中常用的矩阵,以及由它们经变换或截取产生的新矩阵773.由函数创建矩阵第77页/共239页2023/3/1678一、矩阵的创建zeros(m,n)零矩阵。ones(m,n)元素全部为1的矩阵。eye(m,n)单位阵。rand(m,n)正态分布的随机矩阵。diag(M),M是一个矩阵,diag()函数取矩阵的对角元素产生一个列向量;M是一个列向量则产生一个对角阵783.由函数创建矩阵第78页/共239页2023/3/1679一、矩阵的创建*.mat文件,save,load命令savemydata.mat把工作空间中所有变量存入文件saveyourdata.matabc把工作空间中abc变量存入文件loadmydata.mat把文件中的变量读入到工作空间中loadmydata.matabc把文件中的变量abc读入到工作空间中794.从外部文件装入第79页/共239页2023/3/1680一、矩阵的创建*.xls文件,首先创建一个excel文档,然后再matlab命令窗口中用xlsread(‘filename’)调用在officeexcel环境下编辑保存book.xls文件在matlab环境下读取数据xlsread(‘book.xls’)804.从外部文件装入第80页/共239页2023/3/1681一、矩阵的创建在matlab中复数单位为i=sqrt(-1),在工作空间中显示为0+1.0000i复数可由下面语句生成:z=a+b*i(或z=a+bi)当复数作为矩阵元素时,复数内不能留有空格,否则会被认为是两个分开的数815.复数矩阵的创建第81页/共239页2023/3/1682A=[1+5*i,2+6*i;3+7*i,4+8*i]B=[1,2;3,4]+i*[5,6;7,8]C=[1+5i,2+6i;3+7i,4+8i]第82页/共239页2023/3/1683一、矩阵的创建矩阵的子阵可以通过标量、向量、冒号的标识来引用和赋值M=magic(5)创建一个5维的魔方阵M1=M(1:2,[1,3,5])提取矩阵M的第一行和第二行的第1,3,5列元素M2=M([1,3],:)提取矩阵M的第一行和第三行的全部列元素M3=M(3,3)提取矩阵M的第三行和第三列的元素836.矩阵的子阵第83页/共239页2023/3/1684一、矩阵的创建可以通过矩阵的旋转,改变维数和截取部分元素来产生用户需要的新矩阵B=rot90(A)B由A逆时针旋转90度而得B=rot90(A,k)B由A逆时针旋转90*k度而得B=fliplr(A)B由A左右翻转而得B=flipud(A)B由A上下翻转而得847.矩阵的结构变换第84页/共239页2023/3/1685一、矩阵的创建语句X=[]将一个0x0的矩阵赋给X。使用这个矩阵不会引起出错情况X=[]与clearX不同,clear是将X清除出工作空间,而空矩阵存在于工作空间,只是空尺寸而已858.空矩阵第85页/共239页2023/3/16869.其它还有伴随矩阵、稀疏矩阵、魔方矩阵、对角矩阵、范德蒙等矩阵的创建。注意:Matlab严格区分大小写字母,因此a与A是两个不同的变量。第86页/共239页2023/3/1687二、数据的保存与获取savedata——将工作空间中所有的变量存到data.mat文件中save——将工作空间中所有的变量存到matlab.mat文件中87默认文件名第87页/共239页2023/3/1688二、数据的保存与获取把matlab工作空间中一些有用的数据长久保存下来的方法是生成mat数据文件savedataab——将工作空间中a和b变量存到data.mat文件中下次运行matlab时即可用load指令调用已生成的mat文件88第88页/共239页2023/3/1689loadloaddataloaddataab

mat文件是标准的二进制文件,还可以ASCII码形式保存。即可恢复保存过的所有变量第89页/共239页2023/3/1690三、矩阵运算在Matlab系统中提供了如下矩阵运算符:+加法-减法*乘法^幂\左除/右除’转置这些矩阵运算符要符合矩阵运算规律:即具有相同行和列的矩阵可以进行“加法”和“减法”运算;矩阵A的列数和矩阵B的行数相同时A*B才有意义而矩阵的幂要求矩阵是个方阵(矩阵的行数等于列数)90第90页/共239页2023/3/1691三、矩阵运算911.矩阵加、减(+,-)运算规则:相加、减的两矩阵必须是同维数的,即有相同的行和列两矩阵对应元素可相加减。A=[1,2,3;4,5,6];B=[0,9,8;7,6,5];C=A+BC=11111111111第91页/共239页2023/3/1692允许参与运算的两矩阵之一是标量。标量与矩阵的所有元素分别进行加减操作。A=[1,2,3;4,5,6];B=9;C=A+BC=101112131415第92页/共239页2023/3/1693三、矩阵运算932.矩阵乘()运算规则:

A矩阵的列数必须等于B矩阵的行数a=[123;456;780];b=[1;2;3];c=a*bc=143223

第93页/共239页2023/3/1694三、矩阵运算942.矩阵乘()运算标量可与任何矩阵相乘d=[-1;0;2];f=pi*df=-3.141606.2832

第94页/共239页2023/3/1695三、矩阵运算矩阵除的运算在线性代数中没有,有矩阵逆的运算。在matlab中有两种矩阵除运算左除\,右除/。如果A矩阵是非奇异方阵,则A\B和B/A运算可以实现。A\B等效于A的逆左乘B矩阵,即inv(A)*B。两矩阵的行数必须相等。B/A等效于A的逆右乘B矩阵,即B*inv(A)。两矩阵的列数必须相等。通常X=A\B是A*X=B的解,X=A/B是X*A=B的解。一般情况下A\B不等于A/B953.矩阵除法第95页/共239页2023/3/1696补充概念:非奇异矩阵设A为n阶方阵,若|A|≠0,即它的秩为n,则称A为非奇异矩阵,或称A为满秩的,非退化的;若|A|=0,即它的秩小于n,则称A为奇异矩阵,或称A为降秩的,退化的;第96页/共239页2023/3/1697三、矩阵运算973.矩阵除法X1=inv(A)*BX1=2.9288-0.76701.48181.1359-1.83831.4327-0.4428-1.67481.1096-2.2408X2=A\BX2=2.9288-0.76701.48181.1359-1.83831.4327-0.4428-1.67481.1096-2.2408A=rand(10);B=ones(10,1);%两矩阵的行数必须相等。第97页/共239页2023/3/1698三、矩阵运算983.矩阵除法B/Aans=-0.94861.30770.4230-2.7299-0.63362.99933.0950-1.1031-0.0625-0.8839A=rand(10);B=ones(1,10);%两矩阵的列数必须相等。B*inv(A)ans=-0.94861.30770.4230-2.7299-0.63362.99933.0950-1.1031-0.0625-0.8839第98页/共239页2023/3/16994.矩阵转置特殊字符(’撇号)表示一个矩阵的转置。A=123456B=A'B=142536第99页/共239页2023/3/161004.矩阵转置(Cont.)特别指出,对于一个复数矩阵Z,Z’代表的是它的复数共轭转置,如果将其随意用于任何复数数据,有时可能导致出现错误的结果。因此对于复数的非共轭转置应使用conj(Z’)。conj(Z’)=Z.’第100页/共239页2023/3/161014.矩阵转置(Cont.)B=1.0000-5.0000i3.0000-7.0000i2.0000-6.0000i4.0000-8.0000iA=[1,2;3,4]+i*[5,6;7,8]共轭转置B=A’第101页/共239页2023/3/161024.矩阵转置(Cont.)非共轭转置B=conj(A’)=A.’B=1.0000+5.0000i3.0000+7.0000i2.0000+6.0000i4.0000+8.0000i第102页/共239页2023/3/16103inv——矩阵求逆det——行列式的值eig——矩阵的特征值diag——对角矩阵sqrt——矩阵开方5.矩阵的其它运算第103页/共239页2023/3/161046.关系运算

关系符号意义<<=>>===~=小于小于或等于大于大于或等于等于不等于第104页/共239页2023/3/16105关系运算规则当两个变量是标量a和b时,若a、b间关系成立,那么关系运算结果为1,否则为0。当比较两个维数相同的矩阵A和B时,比较的是A、B矩阵相同位置的元素,按标量的运算规则逐个进行,关系运算的结果是一个维数和A、B相同的矩阵,它的元素由0和1组成。当比较的一个是矩阵A,一个是标量B时,把标量B和矩阵A的每一个元素按标量的运算规则逐个比较,关系运算的结果是一个维数和A相同的矩阵,它的元素由0和1组成。第105页/共239页2023/3/161067.逻辑运算

逻辑符号意义&|~与或非第106页/共239页2023/3/16107逻辑运算规则在逻辑运算中,非零元素的逻辑量为真,用1表示,零元素的逻辑量为假,用0表示。若参与运算是两个标量a和b,那么a&b,a与b全是非零时结果是1,否则为0。a|b,a与b中只要有一个是非零,运算结果为1。~a,当a是零时,运算结果为1,否则为0。当比较两个维数相同的矩阵A和B时,比较的是A、B矩阵相同位置的元素,按标量的运算规则逐个进行,逻辑运算的结果是一个维数和A、B相同的矩阵,它的元素由0和1组成。当比较的一个是矩阵A,一个是标量B时,把标量B和矩阵A的每一个元素按标量的运算规则逐个比较,逻辑运算的结果是一个维数和A相同的矩阵,它的元素由0和1组成。第107页/共239页2023/3/16108在Matlab系统中提供了如下数组运算符:

.*乘法.^幂.\左除./右除.’转置数组运算无论对于哪种操作都是对元素逐个进行的。运算符中的小黑点绝对不能遗漏,否则将不按数组运算规则计算。数组运算中所有的二元运算必须是同维的数组或者其中有一个是标量。

8.数组运算第108页/共239页2023/3/16109ab——a,b两数组必须有相同的行和列两数组相应元素相乘。a=[123;456;789];b=[246;135;7910];a.*bans=281841530497290①数组乘()第109页/共239页2023/3/16110a=[123;456;789];b=[246;135;7910];a*bans=253746558510985133172第110页/共239页2023/3/16111a./b=b.\aa.\b=b./a——

给出a,b对应元素间的商。②数组除(左除.\,右除./)第111页/共239页2023/3/16112例:a=[123];b=[456];c1=a.\b;c2=b./ac1=4.00002.50002.0000c2=4.00002.50002.0000第112页/共239页2023/3/16113数组的标量乘方A.^p,运算为数组对应元素的p次方,所得结果为与数组A维数相同的数组。标量的数组乘方p.^A,运算为p的数组对应元素的次方,所得结果为与数组A维数相同的数组。③数组乘方(.^)—

元素对元素的幂第113页/共239页2023/3/16114a=[123];b=[456];z=a.^2z=1.004.009.00z=a.^bz=1.0032.00729.00第114页/共239页2023/3/16115四、多项式运算

115matlab语言把多项式表达成一个行向量,该向量中的元素是按多项式降幂排列的。

f(x)=anxn+an-1xn-1+……+a0

可用行向量p=[anan-1……a1a0]表示第115页/共239页2023/3/161161.poly——产生特征多项式系数向量特征多项式一定是n+1维的特征多项式第一个元素(系数)一定是1第116页/共239页2023/3/16117

helppoly

POLYConvertrootstopolynomial.POLY(A),whenAisanNbyNmatrix,isarowvectorwithN+1elementswhicharethecoefficientsofthecharacteristicpolynomial,DET(lambda*EYE(SIZE(A))-A).

POLY(V),whenVisavector,isavectorwhoseelementsarethecoefficientsofthepolynomialwhoserootsaretheelementsofV.Forvectors,ROOTSandPOLYareinversefunctionsofeachother,uptoordering,scaling,androundofferror.第117页/共239页2023/3/16118例:a=[123;456;780];p=poly(a)p=1.00-6.00-72.00-27.00p是多项式p(x)=x3-6x2-72x-27的matlab描述方法,我们可用:p1=poly2str(p,‘x’)

显示数学多项式的形式,p1=x^3-6x^2-72x-27第118页/共239页2023/3/161192.roots——求多项式的根a=[123;456;780];p=poly(a)p=1.00-6.00-72.00-27.00r=roots(p)r=12.12-5.73-0.39显然r是矩阵a的特征值第119页/共239页2023/3/16120当然我们可用poly令其返回多项式形式p2=poly(r)p2=1.00-6.00-72.00-27.00matlab规定多项式系数向量用行向量表示,一组根用列向量表示。第120页/共239页2023/3/16121a=[123]b=poly(a)b=1-611-6p=poly2str(b,’x’)p=x^3-6x^2+11x-6c=roots(b)c=3.00002.00001.0000b1=poly(c)b1=1-611-6Forvectors,ROOTSandPOLYareinversefunctionsofeachother.第121页/共239页2023/3/161223.conv——多项式乘运算例:a(x)=x2+2x+3;b(x)=4x2+5x+6;c=(x2+2x+3)(4x2+5x+6)a=[123];b=[456];c=conv(a,b)=conv([123],[456])c=4.0013.0028.0027.0018.00p=poly2str(c,'x')p=4x^4+13x^3+28x^2+27x+18第122页/共239页2023/3/161234.deconv——多项式除运算a=[123];c=[4.0013.0028.0027.0018.00]d=deconv(c,a)d=4.005.006.00[d,r]=deconv(c,a)余数c除a后的整数第123页/共239页2023/3/161245.polyder——多项式微分matlab提供了polyder函数多项式的微分。命令格式:polyder(p):求p的微分polyder(a,b):求多项式a,b乘积的微分[p,q]=polyder(a,b):求多项式a,b商的微分第124页/共239页2023/3/16125例:a=[12345];poly2str(a,'x')ans=x^4+2x^3+3x^2+4x+5b=polyder(a)b=4664poly2str(b,'x')ans=4x^3+6x^2+6x+45.多项式微分(cont.)第125页/共239页2023/3/161266.polyval——多项式求值helppolyvalPOLYVALEvaluatepolynomial.Y=POLYVAL(P,X)returnsthevalueofapolynomialPevaluatedatX.PisavectoroflengthN+1whoseelementsarethecoefficientsofthepolynomialindescendingpowers.

Y=P(1)*X^N+P(2)*X^(N-1)+...+P(N)*X+P(N+1)

IfXisamatrixorvector,thepolynomialisevaluatedatallpointsinX.

第126页/共239页2023/3/16127%求出多项式p在x处的值y=polyval(p,x)a=[123]p=poly(a)p=1-611-6p1=poly2str(a,’x’)p1=x^3-6x^2+11x–6x=1:0.5:5y=polyval(p,x)y=00.37500-0.37500第127页/共239页2023/3/16128五、拟合与插值拟合和插值在实验数据处理中是非常重要的,特别是拟合,用最小二乘法求直线的斜率和截距是数据处理中常用的、最准确的方法外推法、标准工作曲线法都是这方面的运用。但由于运算量很大,长期以来用作图法来得到所需要的结果,其人为误差是不可避免的如果是非线性的情况则更为困难,并很难得到所拟合变量间的函数关系的解析式,也影响了对所研究问题的进一步深入,如果用Matlab处理则非常方便128第128页/共239页2023/3/161291.多项式拟合helppolyfitPOLYFITFitpolynomialtodata.P=POLYFIT(X,Y,N)findsthecoefficientsofapolynomialP(X)ofdegreeNthatfitsthedataYbestinaleast-squaressense.PisarowvectoroflengthN+1containingthepolynomialcoefficientsindescendingpowers,P(1)*X^N+P(2)*X^(N-1)+...+P(N)*X+P(N+1).第129页/共239页2023/3/16130x0=0:0.1:1;y0=[-.4471.9724.664.014.583.455.359.22];p=polyfit(x0,y0,3)%p=56.6915-87.117440.0070-0.9043xx=0:0.01:1;yy=polyval(p,xx);plot(xx,yy,'-b',x0,y0,'or')第130页/共239页2023/3/16131第131页/共239页2023/3/16132插值的定义——是对某些集合给定的数据点之间函数的估值方法。当不能很快地求出所需中间点的函数时,插值是一个非常有价值的工具。Matlab提供了一维、二维、三次样条等许多插值选择。2.插值第132页/共239页2023/3/16133table1——table2——interp1——interp2——spline——利用已知点确定未知点粗糙——精确集合大的——简化的插值函数第133页/共239页2023/3/16134一元插值:若已知离散数据向量x,y,则yi=interp1(x,y,xi,'method')将计算在xi处的函数值yi。其中的参数method可为:nearest最邻近插值linear

线性插值(缺省)spline

三次样条插值cubic

三次多项式插值(要求x等距)xi为向量时,

yi也为向量。第134页/共239页2023/3/16135

例如:x=0:8;y=sin(x);x1=0:.1:8;y1=interp1(x,y,x1,'nearest');y2=interp1(x,y,x1,'linear');y3=interp1(x,y,x1,'spline');y4=interp1(x,y,x1,'cubic');plot(x,y,'o-',x1,y1,'b--',x1,y2,'k:',x1,y3,'r-',x1,y4,'g-')legend('原始数据','nearest','linear','spline','cubic')第135页/共239页2023/3/16136第136页/共239页2023/3/16137第137页/共239页2023/3/16138

本节介绍了Matlab语言的数值运算功能,通过学习应该掌握:如何创建矩阵矩阵及数组运算多项式运算线性方程组拟合与插值小结第138页/共239页2023/3/16139第3部分Matlab图形编程——Matlab绘图第139页/共239页2023/3/16140

matlab丰富的图形表现方法,使得数学计算结果可以方便地、多样地实现可视化,这是其它语言所不能比拟的。第140页/共239页2023/3/16141matlab语言的绘图功能不仅能绘制几乎所有的标准图形,而且其表现形式也是丰富多样的matlab语言不仅具有高层绘图能力,而且还具有底层绘图能力——句柄绘图在面向对象的图形设计基础上,使得用户可以用来开发各专业的专用图形141第141页/共239页2023/3/16142一、二维图形的绘制Matlab为把数据显示成二维图形并对图形进行注释提供了多种绘图函数最基本的二维图形指令——plot,fplot,ezplot,fill特殊二维绘图函数——bar,stairs,stem,hist,ploar,pie,area142第142页/共239页2023/3/16143一、二维图形的绘制plot命令自动打开一个图形窗口Figure。用直线连接相邻两数据点来绘制图形。根据图形坐标大小自动缩扩坐标轴,将数据标尺及单位标注自动加到两个坐标轴上,可自定坐标轴,可把x,y轴用对数坐标表示1431.plot最基本的二维图形指令第143页/共239页2023/3/16144plot的调用格式plot(x)——缺省自变量绘图格式,x为行(列)向量,以x元素值为纵坐标,以相应元素下标为横坐标绘图。

plot(x,y)——基本格式,以y(x)的函数关系作出直角坐标图,如果y为n×m的矩阵,则以x为自变量,作出m条曲线。plot(x1,y1,x2,y2)——多条曲线绘图格式。可任意设定曲线颜色和线型。可给图形加坐标网线和图形加注功能。第144页/共239页2023/3/16145plot(x,y,’s’)——开关格式,开关量字符串s设定曲线颜色和绘图方式,使用颜色字符串的前1~3个字母,如yellow—yel表示等。

plot(x1,y1,’s1’,x2,y2,’s2’,…)第145页/共239页2023/3/16146S的标准设定值如下:

字母颜色标点线型

y黄色:点线

m粉红○圈线

c亮蓝××线

r大红++字线

g绿色-实线

b蓝色星形线

w白色--虚线

k黑色-·点划线第146页/共239页2023/3/16147+o*.xv^><square正方形diamond菱形pentagram五角星hexagram六角星第147页/共239页2023/3/16148一、二维图形的绘制1482.可任意设置颜色与线型Example3_1:t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);plot(t,y,'r-',t,y1,'g:',t,y2,'b*')第148页/共239页2023/3/16149如果已经存在一个图形窗口,plot命令则清除当前图形,绘制新图形。可单窗口单曲线绘图;可单窗口多曲线绘图;可单窗口多曲线分图绘图;可多窗口绘图。第149页/共239页2023/3/161501.单窗口单曲线绘图例x=[0,0.48,0.84,1,0.91,0.6,0.14]plot(x)第150页/共239页2023/3/161512.单窗口多曲线绘图Example3_2:t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);plot(t,y,t,y1,t,y2)第151页/共239页2023/3/16152一、二维图形的绘制1523.单窗口多曲线绘图Example3_3:

t=0:pi/100:2*pi;

y=sin(t);

y1=sin(t+0.25);

y2=sin(t+0.5);

y3=cos(t);

y4=cos(t+0.25);

y5=cos(t+0.5);

plot(t,[y',y1',y2',y3',y4',y5'])第152页/共239页2023/3/16153一、二维图形的绘制1533.单窗口多曲线绘图Example3_4:y3=cos(t);y4=cos(t+0.25);y5=cos(t+0.5);plot(t,y3);holdon;

plot(t,y4);plot(t,y5);第153页/共239页2023/3/161543.单窗口多曲线分图绘图subplot——子图分割命令调用格式:

subplot(m,n,p)——按从左至右,从上至下排。

行列绘图序号第154页/共239页2023/3/16155subplot(1,3,1);

plot(t,y)

subplot(1,3,2);

plot(t,y3)

subplot(1,3,3);

plot(t,y2)3.单窗口多曲线分图绘图(cont.)第155页/共239页2023/3/16156subplot(3,1,1);

plot(t,y)

subplot(3,1,2);

plot(t,y3)

subplot(3,1,3);

plot(t,y2)

3.单窗口多曲线分图绘图(cont.)第156页/共239页2023/3/161573.单窗口多曲线分图绘图(cont.)I=imread('eight.tif');%example3_5imshow(I)subplot(2,2,1)imshow(I)title('originalimage')J=imnoise(I,'salt&pepper',0.01);subplot(2,2,2)imshow(J)title('noisedimage')K=medfilt2(J);subplot(2,2,3)imshow(K)title('processedimage(3x3)')L=medfilt2(J,[55]);subplot(2,2,4)imshow(L)title('processedimage(5x5)')第157页/共239页2023/3/161584.多窗口绘图figure(n)——创建窗口函数,n为窗顺序号。t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);plot(t,y)%自动出现第一个窗口figure(2)plot(t,y1)%在第二窗口绘图figure(3)plot(t,y2)%在第三窗口绘图第158页/共239页2023/3/16159第159页/共239页2023/3/161605.图形加注功能

将标题、坐标轴标记、网格线及文字注释加注到图形上,这些函数为:

title——给图形加标题

xlabel——给x轴加标注

ylabel——给y轴加标注

text——在图形指定位置加标注

gtext——将标注加到图形任意位置

gridon(off)——打开、关闭坐标网格线

legend——添加图例

axis——控制坐标轴的刻度第160页/共239页2023/3/16161Example3_6:t=0:0.1:10;y1=sin(t);y2=cos(t);plot(t,y1,'r',t,y2,'b--');x=[1.7*pi;1.6*pi];y=[-0.3;0.8];s=['sin(t)';'cos(t)'];text(x,y,s);title('正弦和余弦曲线');legend('正弦','余弦')xlabel('时间t'),ylabel('正弦、余弦')gridaxisequal第161页/共239页2023/3/16162第162页/共239页2023/3/16163利用windows工具实现图形加注第163页/共239页2023/3/16164v=axis,返回值为当前图形边界的4元行向量,v=[xminxmaxyminymax],如果当前图形是三维的,则返回值是三维坐标边界的6元行向量。axis控制图形的纵

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论