2012MATLAB基础与应用课件_第1页
2012MATLAB基础与应用课件_第2页
2012MATLAB基础与应用课件_第3页
2012MATLAB基础与应用课件_第4页
2012MATLAB基础与应用课件_第5页
已阅读5页,还剩431页未读 继续免费阅读

下载本文档

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

文档简介

封面百度网友电信教研室2012目录

前言第1章

MATLAB概述第2章

MATLAB基本语法第3章

MATLAB基本绘图第4章

MATLAB数值计算第5章

MATLAB基本程序设计第6章

MATLAB图形用户界面设计第7章

MATLAB符号数学工具箱第8章Simulink

仿真

第9章

MATLAB在信号与系统中的应用第10章

MATLAB在数字信号处理中的应用前言

(一)为什么开设本课程

由于MATLAB的独特优势,开设本课程:2、简单易用的程序语言

3、强大的科学计算及数据处理能力4、出色的图形处理功能1、友好的工作平台和编程环境5、工程师必备的工具前言

(二)课程特点1、是一门计算机语言课2、是一门实践性很强的课3、是一门选修课前言

(三)课程内容1、MATLAB概述2、MATLAB基本语法4、MATLAB数值计算3、MATLAB基本绘图5、MATLAB基本程序设计7、MATLAB工具箱(符号数学)8、Simulink

与MATLAB应用6、MATLAB图形用户界面设计前言

(五)要求

勤学习、勤实践。多沟通、共提高。(四)课时安排总40学时=22学时授课+18学时实验第1章MATLAB概述■MATLAB简介■MATLAB的特点■MATLAB的组成■MATLAB的工作环境■MATLAB的通用命令主要内容1.1MATLAB简介-发展1970年代中期,CleveMoler博士开发了:

EISPACK(特征值求解的程序库)

LINPACK(解线性方程的程序库)

1970年代后期,

CleveMoler编写接口程序:MATLAB,即MATrix和LABoratory前3个字母的组合,是“矩阵实验室”的缩写,它是一种以矩阵运算为基础的交互式程序语言。

1983年春,CleveMoler和JohnLittle用C语言开发了第二代专业版

84年,两人成立了Mathworks公司,正式把MATLAB推向市场。1.1MATLAB简介-发展1988年,推出MATLAB3.x版本(DOS版)。

1993年,推出MATLAB4.0版本(Win3.x)。

1997年,推出MATLAB5.0版(Windows95)。

1999年,推出MATLAB5.3版本R11(流行较广)。

2000年,推出MATLAB6.0版本R12(Win98/Win2000)

2001年,推出MATLAB6.1(克服6.0不支持P4,Winme,汉字等)。2002年,推出MATLAB6.5R13(速度更快、性能更优越等)。2004年,推出MATLAB7版本R141.1MATLAB简介-特点

1、运算功能强大2、人机界面友好,编程效率高

3、强大而简易的作图功能

4、强劲的工具箱

5、动态仿真功能是一个强大的功能演算性草稿纸

难点:函数较多,仅基本部分就有700多个。1.1MATLAB简介-组成

MATLAB软件由四部分组成:

1、基本部分(核心):程序主体和基本函数(约700多个)。

2、专业扩展部分(工具箱):有30多个工具箱,由大量专业函数组成(上千个函数)。

3、符号数学工具箱:基于Maple软件的符号数学引擎。

4、仿真工具箱(Simulink):用于建立系统的数学模型和仿真分析等。

1.2 MATLAB的工作环境MATLAB的启动方法一:点击快捷方式图标方法二:点击文件matlab.exeMATLAB的退出在MATLAB的命令窗口输入“exit”命令;在MATLAB的命令窗口输入“quit”命令;直接单击MATLAB命令窗口的按钮。界面简介1.2MATLAB工作环境-界面

菜单(Menu)命令窗口历史命令窗口工作区窗口和当前目录窗口当前路径1.2MATLAB工作环境-界面

☆命令窗口(commandwindow)☆历史命令窗口(commandhistory)☆当前目录窗口(currentdirectory)☆工作区窗口(workspace)☆已安装部件窗口(launchpad)菜单(Menu)

窗口(Windows)

1.菜单和工具栏默认情况下的菜单和工具栏:【File】菜单主要用于对文件的处理。【Edit】菜单主要用于复制、粘贴等操作,与一般Windows程序的类似,在此不作详细介绍。【Debug】菜单用于调试程序。【Desktop】菜单用于设置主窗口中需要打开的窗口。【Window】菜单列出当前所有打开的窗口。【Help】菜单用于选择打开不同的帮助系统。

2.通用窗口

MATLAB工作界面中的常用窗口包括命令窗口历史命令窗口当前工作目录窗口工作空间浏览器窗口变量编辑窗口M文件编辑/调试窗口所有窗口都可以单独显示,使用Undock和Dock可使窗口单独出来和返回到MATLAB工作界面中。1.2.1命令窗口(CommandWindow)MATLAB提供给用户使用的管理功能的人机界面,在命令窗口中输入MATLAB的命令和数据后按回车键,立即执行运算并显示结果。说明:命令窗口中的“>>”为命令提示符,表示MATLAB处于准备状态。当在提示符后输入一段程序或一段运算式后【Enter】键,MATLAB会给出计算结果,并再次进入准备状态(所得结果将被保存在工作空间窗口中)。在命令窗口内执行的MATLAB主要操作有:运行函数和输入变量;控制输入和输出;执行程序,包括M文件和外部程序。命令窗口中可直接运行MATLAB函数,而这些函数往往又和MATLAB命令直接联系。MATLAB在命令窗口中的语句形式为:>>变量=表达式;运行函数和键入变量在命令窗口的提示符“>>”下,可以直接输入变量。例:计算A=256/4-100×2+128>>A=256/4-100*2+128%从键盘输入,并单击回车键

A=%屏幕显示的结果

-8MATLAB语法规定,百分号“%”后面的语句为注释语句。

在命令窗口中输入不同的命令和数值,并查看其显示方式。>>a=0.5a=0.5000>>b='sin'b=sin>>ifa<1c=true%如果a<1则c为trueendc=11.2.2历史命令(CommandHistory)历史命令窗口用来记录并显示已经运行过的命令、函数和表达式。在默认设置下,该窗口会显示自安装以来所有使用过命令的历史记录,并标明每次开启MATLAB的时间。1.2.3当前目录(CurrentDirectory)当前目录窗口中显示了MATLAB当前工作目录下的所有文件夹与文件,以便用户对当前目录下的文件进行管理。查看工作目录下文件的相关信息的常用命令what:列出当前目录下的M、MAT、MEX文件清单。dir:显示当前目录或指定当前目录下的文件。cd

路径:改变或显示当前工作目录;路径可省略,省略时为显示当前工作目录;cd..表示回到上一级目录。type:显示文件内容。delete:删除文件。which文件名:指出M文件、MEX文件、工作空间变量、内置函数或Simulink模型所在的目录。1.2.4工作空间(Workplace)MATLAB在进行运算时,将变量存储在内存中,这些存储变量的内存空间称为基本工作空间,简称工作空间。工作空间窗口以列表形式显示了MATLAB工作区中当前所有变量的名称及其属性。不同的变量类型使用不同的图标。内存变量查阅、删除的指令操作法在指令窗中运用who,whos查阅MATLAB内存变量。who命令:查看现存于基本空间的变量whos命令:详细查看现存于基本空间的变量在指令窗中运用clear指令可以删除内存(工作空间内)的某一或所有变量如:clearA,clearall1.2.5数组编辑器窗口(ArrayEditor)启动数组编辑器窗口的方法有:在工作空间窗口中双击该变量;在工作空间窗口中选择变量,按鼠标右键在快捷菜单中选择“Open…”菜单;1.2.6文件编辑/调试(Editor/debugger)MATLAB通过自带的M文件编辑/调试器来创建和编辑M文件。进入MATLAB文件编辑器的方法如下:命令窗口直接键入命令:edit,打开编辑器编辑Untitled.m文件。使用命令窗口中的菜单或工具条上的快捷工具按钮。M文件编辑/调试器窗口是标准的windows风格。编辑M文件可用其它任何文本编辑器进行。1.3 MATLAB命令窗口的主要操作命令窗口显示方式的操作数值计算结果的显示格式指令行中的标点符号命令窗口中指令行的编辑命令窗口的通用命令命令窗口显示方式的操作一

缺省显示方式对窗口内的字符数码分类采用不同的颜色。二

显示方式的设置对命令窗口的字体风格、大小、颜色和数值计算结果格式进行设置。MATLAB数据格式与显示形式MATLAB既可用传统的十进制数表达数值,也可以用科学计数表达数值,用e代表10的指数形式,用i和j来代表虚数。MATLAB内部数据格式只有一种,是IEEE浮点标准的双精度二进制(64位)为了人机交互的友好性,数据输出显示格式有8种。 可用菜单选项或format命令选择。注:数值的显示精度并不代表数值的存储精度。数值计算结果的显示格式:在参数设置对话框的“NumericFormat”栏设置数据的显示格式。另一种方法是直接在命令窗口中使用“format”命令来进行数值显示格式的设置。format格式描述数值计算结果的显示格式

表中实现的所有格式设置仅在MATLAB的当前执行过程中有效

Matlab命令显示形式说明formatlong3.14159265358979316位十进制formatshorte3.1416e+0005位十进制数加指数formatlonge3.141592653589793e+00016位十进制数加指数formathex400921fb54442d1816位十六进制formatbank3.14两位小数format++正、负或零formatrat355/113分数近似formatshort(默认)3.14159二位整数,四位小数例

使用format函数在命令窗口中显示运算结果。>>a=sin(60*pi/180)a=0.8660>>formatlong>>aa=0.86602540378444>>formatshorte>>aa=8.6603e-001程序分析:long格式为15位数字显示,shorte为5位科学计数显示。常见标点符号的作用半角逗号“,”和半角分号“;”都可以用来分隔MATLAB的指令(函数)或变量。MATLAB允许一行内出现多条指令。MATLAB的指令(函数)后使用半角分号“;”,它的作用是用来避免在命令窗口显示程序运行的中间结果。注:可以使用shift+Enter(或shift+Return),表示要输入多行命令后再运行,待最后一行命令输入完毕,再回车,MATLAB才开始运行上述诸条命令。常见标点符号的作用对于较长的命令行,可用符号“…”来表示换行继续写入

。冒号(一个重要的操作符)的作用:用于生成默认间隔为1的等间隔向量;用于选出矩阵指定行、列及元素;用于循环语句。指令行中的标点符号名称标点作用空格(为机器辨认)用作输入量与输入量之间的分隔符逗号,用作要显示计算结果的指令与其后指令的分隔;用作输入量与输入量之间的分隔符;用作数组元素分隔符号黑点.用作数值表示中的小数点分号;用作不显示计算结果指令的“结尾”标志;用作不显示计算结果指令与其后指令的分隔;用作数组的行间分隔符;冒号:用以生成一维数组;用作单下标援引时,表示全部元素构成的长列;用作多下标援引时,表示那维上的全部注释号%由它“启首”后的所有物理行部分被看作非执行的注释单引号对‘’字符串记述符圆括号()在数组援引时用;函数指令输入宗量列表时用方括号[]输入数组时用;函数指令输出宗量列表时用花括号{}元胞数组记述符下连符_(为使人易读)用作一个变量、函数或文件名中的连字符续行号…由三个以上连续黑点构成。它把其下的物理行看作该行的“逻辑”继续,以构成一个“较长”的完整指令“At”号@放在函数名前,形成函数句柄;放在目录名前,形成用户对象类目录[说明]为保证指令正确执行,以上符号一定要在英文状态下输入。例:a=10*2;b=a+5,c=a*b;d=c+a,A=[123;456;789]B=[1,234,5,6789]C=[1;2;3]命令窗口中指令行的编辑为方便操作,MATLAB允许用户对已经输入的指令进行回调、编辑和重运行。键名作用↑前寻式调回已输入过的指令行↓后寻式调回已输入过的指令行←在当前行中左移光标→在当前行中右移光标PageUp前寻式翻阅当前窗中的内容PageDown后寻式翻阅当前窗中的内容Home使光标移到当前行的首端End使光标移到当前行的尾端Delete删去光标右边的字符Backspace删去光标左边的字符Esc清除当前行的全部内容命令窗口的常用控制指令指令含义cd设置当前工作目录clf清除图形窗clc清除指令窗中显示内容clear清除MATLAB工作空间中保存的变量和函数dir列出指定目录下的文件和子目录清单edit打开M文件编辑器,编辑程序exit关闭/退出MATLABquit关闭/退出MATLABmd创建目录more使其后的显示内容分页进行type显示指定M文件的内容which指出其后文件所在的目录!运行外部程序,如!dir;!calc(计算器)

1.4MATLAB7.3的其他管理

MATLAB文件格式MATLAB7.3的常用文件有.m、.mat、.fig、.mdl、.mex、.p等类型。设置搜索路径用户自己书写的函数有可能并没有保存在搜索路径下。要解决这个问题,只需把程序所在的目录扩展成MATLAB的搜索路径即可。

MATLAB文件格式程序文件程序文件即M文件(M-File),其文件的扩展名为.m。图形文件图形文件(Figure)的扩展名为.fig。模型文件模型文件(Model)扩展名为.mdl,可以在“File”菜单中创建Model时生成.mdl文件。数据文件数据文件即MAT文件,其文件的扩展名为.mat。MATLAB文件格式可执行文件可执行文件即MEX文件,其文件的扩展名为.mex。项目文件项目文件的扩展名为.prj。P码文件P码文件即伪代码文件,是M文件被调用后在内存中生成的内部伪代码。设置搜索路径在MATLAB内存中进行检查,检查“sin”和“x”是否为工作空间的变量或特殊变量;检查“sin”和“x”是否为MATLAB的内部函数;在当前目录上,检查是否有相应的“.m”或“.mex”文件存在;在MATLAB搜索路径的所有其他目录中,依次检查是否有相应的“.m”或“.mex”的文件存在;如果都不是,则MATLAB发出错误信息。1.MATLAB的基本搜索过程2.设置搜索路径窗口(SetPath)打开设置搜索路径窗口的方法:在MATLAB界面选择菜单“File”→“SetPath”;在命令窗口中运行“pathtool”或“editpath”命令。3.设置搜索路径的常用命令

path命令path(path,'新目录')addpath命令addpath

目录1目录2…参数例

使用命令设置搜索路径>>addpathc:\TEMP-begin >>path(path,'c:\TEMP') >>p=path附:在命令窗口中输入path或genpath可得到MATLAB的所有搜索路径,1.5

MATLAB的帮助系统

1.使用帮助浏览器

2.使用帮助命令

3.联机演示使用帮助浏览器帮助主题(Contents)、索引(Index)、搜索(Search)和演示(Demos)四个面板来查找帮助信息:Contents面板为可展开的树形结构,向用户提供全方位系统帮助的向导图;Index面板是MATLAB提供的术语索引表,可以查找命令、函数和专用术语等。Search面板是通过关键词来查找全文中与之匹配的章节条目,Index只在专用术语表中查找而Search的搜索是在整个HTML文件中进行的,因此其覆盖面更宽。Demos面板为MATLAB提供了Demo演示。使用帮助命令1、help(帮助)>>help(显示已安装的函数库和工具箱)>>help子目录名/库名/工具箱如:helpgeneralorelfun显示基本函数信息helpcomm

>>help函数名显示具体函数的帮助信息如:helpsin

注意:命令窗口显示的MATLAB帮助信息中,是用大写字母来突出函数名的,但在使用这些函数时,应该用小写字母。使用帮助命令lookfor

关键字(查找)

lookfor命令是在所有的帮助条目中搜索关键字,常用来查找具有某种功能而不知道准确名字的命令。如:lookforsound

打开帮助窗口命令:helpwin:打开帮助窗口helpdesk:打开帮助桌面demo:打开演示窗口3.联机演示系统

可以通过以下方式打开联机演示系统。选择MATLAB主窗口菜单的【Help】|Demos】选项;在命令窗口输入demos;直接在帮助页面上选择Demos页。内容回顾1、介绍了本课程的特点内容和安排2、MATLAB的发展、特点和组成3、MATLAB操作界面4、MATLAB的搜索路径扩展5、MATLAB的帮助系统第2章MATLAB基本语法

■变量■矩阵的赋值■矩阵的初等运算■矩阵的基本运算函数■矩阵的逻辑运算主要内容2.1变量

1、标识符:表示变量名,常量名,函数名和文件名的字符串(1)由字母、数字、下划线等符号组成,第一个字母必须是英文字母。(2)变量和常量最长不要超过19个字符,多余截取。(3)函数和文件名通常不超过8个字符。(4)变量名大小写敏感。2.1变量

(5)MATLAB中的特殊变量名,应避免使用。例如:

ans

默认临时变量

piπ

eps

计算机中的最小数

inf

无穷大

NaN非数或不定数(如:0/0)

i或j虚数单位2.1变量

2、变量类型:(1)数值:内部只有一种类型为双精度(8个字节,64位),实数为1个双精度数,复数为两个双精度数。但输出显示格式有8种。可用format命令来改变显示格式。例如:

formatshort显示5位数(pi:3.1416)formatlong显示15位数(pi:3.14159265358979)formatbank显示货币格式(pi:3.14)2.1变量

数字显示的8种格式Matlab命令显示形式说明formatlong3.14159265358979316位十进制formatshorte3.1416e+0005位十进制数加指数formatlonge3.141592653589793e+00016位十进制数加指数formathex400921fb54442d1816位十六进制formatbank3.14两位小数format++正、负或零formatrat355/113分数近似formatshort(默认)3.14159二位整数,四位小数2.1变量

2、变量类型:(2)字符(串):用单引号表示。如:a=’abc’

实际上是一个单个字符的ASCII码组成的行向量。2.1变量

3、矩阵◆MATLAB中的变量或常量都代表一个矩阵,所有的变量运算其实都是矩阵运算。单个值实际上是1*1阶矩阵。◆矩阵元素可以是数值(实数或复数)或字符串。◆一个由矩阵表示的变量可以是一个数、一组数、一个文件(如语音)、一幅图象等。2.1变量

3、矩阵◆矩阵(Matrix)与数组(Array)的关系:矩阵运算有着严格理论数组运算一般指元素运算2.1变量

4、变量的查看:who/whos5、变量的保存和恢复:save文件名(缺省后缀为.mat)例如:savemyvarload文件名例如:loadmyvar2.2矩阵的赋值1、矩阵的直接赋值(1)基本赋值

1)使用[]2)同一行元素用空格或‘,’隔开

3)不同行用‘;’隔开

例如:a=[123;456](2)复数的赋值:例如:z=1+2i或1+2jz=[1+2i3+4i]z=[13]+[24]*i2.2矩阵的赋值注意:

①赋值结尾为“;”则不显示结果。

②一行不够时,可用“…”换行。

③矩阵的阶数也可通过下列函数获得:对于一维,m=length(a)为矩阵a的长度。例如:a=[123]length(a)为32.2矩阵的赋值注意:

③矩阵的阶数也可通过下列函数获得:对于二维,[m,n]=size(a),m为行数,n为列数例如:a=[123;456]size(a)为[23]2.2矩阵的赋值2、矩阵元素的赋值(1)元素用(m,n)的形式表示第m行n列的元素值,可直接引用和赋值。例如,a(2,1)=4,若将其改为9,则可用a(2,1)=9。注意:如果元素下标超出原矩阵的维数,矩阵将自动扩大,多出的元素自动为0。

2.2矩阵的赋值2、矩阵元素的赋值(2)给全行或全列赋值:用“:”代替行或列。如:a(4,:)=[11121314]b(:,5)=[5;8;10;12]注意:行数或列数必须与原矩阵相同。2.2矩阵的赋值3、矩阵的变换(1)抽取:由原矩阵中的部分元素构成新矩阵。如:b=a([2,4],[1,3])

表示第2,4行与第1、3列交叉元素组成新矩阵。2.2矩阵的赋值3、矩阵的变换(2)抽去:使用空矩阵[](无元素),将矩阵整行/列删除。如:a([2,4],:)=[]

将2、4行删除

a(:,[2])=[]

将第2列删除2.2矩阵的赋值3、矩阵的变换(3)组合:由多个矩阵组成一个新矩阵,但行列应正好。如:a=[123;456];b=[789;101112];c=[ab];d=[a;b];(4)转置:b=a'

(行变列)例如:a=[123;456],则a'=[14;25;36]2.2矩阵的赋值(5)排列:b=a(:)将所有列排成一列。例如:a=[123;456];a(:)=[1;4;2;5;3;6];

若先转置再排列,即实现按行排列。(6)变换函数:

fliplr(a)(矩阵左右翻转)(flip翻leftright)

flipud(a)(矩阵上下翻转)……3、矩阵的变换2.2矩阵的赋值4、间隔赋值(适合批量数据)(1)变量=(first:increment:last)形式如:t=(0:0.1:1)则t=[0,0.1,0.2,…,1](2)线性间隔函数linspace(first,last,num)

从first开始到last结束共num个元素,间隔为(last-first)/(num-1)

如:t=linspace(0,1,11),t=[0,0.1,…,1]2.2矩阵的赋值4、间隔赋值(适合批量数据)(3)对数间隔函数logspace(first,last,num)

从10first开始到10last结束共num个元素如:t=logspace(0,1,11),t=[100,100.1,…,101]2.2矩阵的赋值5、基本矩阵(1)空阵:[](当操作无结果时,返回空阵)(2)全0矩阵:zeros(m,n)

例如:zeros(2,3)=[000;000](3)全1矩阵:ones(m,n)(4)单位矩阵:eye(n)(对角线为1的方阵)(4)随机矩阵:rand(m,n)2.2矩阵的赋值6、文件赋值(1)波形文件(.wav):即音频文件读波形文件:a=wavread(‘文件名’),如:a=wavread(‘morse.wav’)

写波形文件:wavwrite(a,’文件名’)波形文件播放:用wavplay或sound,如:wavplay(a);2.2矩阵的赋值6、文件赋值(2)图象文件(.BMP/JPG…等)读图象文件:a=imread(‘文件名’),如:b=imread(‘sz.jpg’)

写图象文件:imwrite(b,’文件名’)

显示图象文件:image(a)2.3矩阵的初等运算1、加减法:矩阵的加减就是对应元素的加减。如:a=[123];b=[456],则a+b=[578],如果矩阵与一常数(标量)相加减,则把该常数看成是同阶的矩阵。例如:a+5=[678]2.3矩阵的初等运算2、乘法(1)矩阵相乘:m×p阶矩阵A与p×n阶矩阵B的乘积是一个m*n阶矩阵。例如:a=[123];b=[456]则:a*b’=[20].(2)矩阵与常数相乘等于每个元素乘以该常数,例:2*a。2.3矩阵的初等运算2、乘法(3)矩阵元素相乘(数组相乘):使用“.*”相乘的两个矩阵阶数应相同。例如:a=[123];b=[456]

则:a.*b=[41018]2.3矩阵的初等运算3、除法(1)矩阵的除法右除,“/”:A/B=A*B-1(B的逆矩阵inv(B)),

B必须是方阵,A与B列应相等。左除,“\”:A\B=A-1*B,A必须是方阵,A与B行应相等。

(2)矩阵除以常数,等于每个元素除以常数,使用普通除法/。2.3矩阵的初等运算3、除法(3)矩阵元素的除法(数组相除):“./”:A./B为A各元素除以B中各元素。“.\”:A.\B=B./A2.3矩阵的初等运算4、乘方(1)矩阵乘方:(乘方是乘法的扩充,为保证合法性,要求矩阵为方阵)

A^标量:例A^2,A^0.2(2)元素的乘方:

a)A.^标量:例A=[12],A.^2=[14]2.3矩阵的初等运算4、乘方

b)标量.^A:例3.^A=[39]

c)A.^B:A、B同阶例A=[12],B=[34],则A.^B=[116]2.4矩阵的基本运算函数1、矩阵的运算函数(见附录A)◆指数函数:expm()%变量必须是方阵

◆对数函数:logm()%变量必须是方阵

◆开方函数:sqrtm()%变量必须是方阵

◆三角函数(25个):例如:t=[123],y=sin(t)◆指数/对数函数(7个):例如:exp()◆复数函数(8个):例如:abs()取模◆取整函数(7个):例:round()四舍五入2.4矩阵的基本运算函数2、矩阵元素的运算(基本函数库elfun)1、关系运算:

共6种:〉(大于)〈(小于)

〉=(大于等于)〈=(小于等于)

==(等于)~=(不等于)◆比较是在元素间进行的。◆矩阵必须同阶◆比较结果仍为矩阵,且元素值为0(假)或1(真)例如:a=[12],b=[21],则a>b结果为[01],a==b结果为[00]2.5矩阵的逻辑运算2、逻辑运算:共有四种运算符号:

&(与)、|(或)、~(非)、xor(异或)◆矩阵元素值必须为逻辑值(0、1)◆运算是在元素间进行的。◆比较结果仍为矩阵例如:a=[10],b=[01],则:a&b=[00]

xor(a,b)=[11]2.5矩阵的逻辑运算3、逻辑函数:(运算符库ops)例如:

exist(‘a’)检查变量是否有定义,返回1表示有0表示无all(‘a’)检查矩阵中元素是否全为非0,

1是0否内容回顾MATLAB基本语法:

1、变量

2、矩阵的赋值

3、矩阵的初等运算

4、矩阵的基本运算函数

5、矩阵的逻辑运算第3章

MATLAB基本绘图)■基本二维绘图■特殊二维绘图■基本三维绘图■特殊三维绘图主要内容3.1基本二维绘图

MATLAB提供了丰富的绘图函数和绘图工具,一般需要5个步骤。1.曲线数据准备2.指定图形窗口和子图位置可使用Figure命令指定图形窗口,默认时打开Figure1窗口,或使用subplot命令指定当前子图。3.调入绘图命令绘制图形4.设置坐标轴的图形注释5.按指定格式保存或导出图形3.1基本二维绘图

一、plot基本二维绘图函数1、格式1:plot(y)功能:y是一向量,以y中元素的下标为横坐标,元素值作为纵坐标,各点以直线相连。例如:y=[12321];plot(y)3.1基本二维绘图

►如果格式1中的y为复数矩阵,则相当于plot(real(y),imag(y))。►如果y为多行或多列矩阵,则绘制多条曲线。例如:y2=[sin(2*pi*t);cos(2*pi*t)];plot(t,y2);

2、格式2:plot(x,y)功能:x,y具有相同的长度,绘图时以x元素值为横坐标,y元素值作为纵坐标,各点以直线相连。例如:t=(0:0.05:1);y=sin(2*pi*t);plot(t,y);3.1基本二维绘图

3、格式3:plot(x1,y1,x2,y2,…)功能:相当于,plot(x1,y1),plot(x2,y2),…,绘制多条曲线在一个图中。例如:t1=(0.5:0.05:1.5);y1=2*sin(2*pi*2*t1);plot(t,y,t1,y1);3.1基本二维绘图

4、格式4:plot(y,’s’)plot(x,y,’s’)plot(x1,y1,’s1’,x2,y2,’s2’…)s为一格式字符串,用于设置绘图颜色和线型(见P106)例如;plot(t,y,’*b’);plot(t,y,’xr’,t1,y1,’:k’)3.1基本二维绘图

二、plotyy

双坐标绘图格式:plotyy(x1,y1,x2,y2)功能:将y1的坐标标在左边,y2标在右边,

x1,x2共用横坐标。例如:plotyy(t,y,t1,y1)3.1基本二维绘图

三、loglog/semilogx/semilogy对数坐标绘图功能:与plot用法相同,区别为坐标轴为对数

Loglog():X-Y轴均为对数

Semilogx():X轴为对数(半对数)

Semilogy():Y轴为对数(半对数)例如:yl=(1:1:100);semilogy(yl);3.1基本二维绘图

四、polar极坐标格式:polar(θ,r)功能:以θ为角度,r为半径绘图。例:x=(0:pi/100:2*pi);

yp=abs(sin(x));

polar(x,yp)3.1基本二维绘图

五、多曲线绘图控制

1、图形保持格式:holdon(off)功能:用于保持当前绘图,以便在同一坐标上再绘制另外图形。例如:plot(t,y);holdon;plot(t1,y1)3.1基本二维绘图

2、子图控制格式:subplot(m,n,p)功能:将窗口分成m(行)*n(列)个子图,并指定在第p个子图中绘图例如:subplot(3,2,2);

plot(t,y);subplot(3,2,3);plot(t1,y1);3.1基本二维绘图

3、窗口控制格式:figure(n)功能:打开一个新窗口用于当前绘图,n为该窗口的句柄(唯一标识),用于在多个窗口中绘图。

例如:figure(1);

plot(t,y);figure(2);plot(t1,y1);3.1基本二维绘图

1、title(‘s’)——给图形加标题

例如:plot(t,y);title(‘sinewave’)

2、xlabel(‘s’)——给x轴加标注例如:xlabel(‘t(s)’)3、ylabel(‘s’)——给y轴加标注例如:ylabel(‘V(mv)’)

六、图形控制

3.1基本二维绘图

4、text(x,y,’s’)—在图形指定位置(x,y)加标注

例如:text(0.5,0.8,’t=0.5sv=0.8’)5、

legend(‘s1’,’s2’,…)——添加图例例如:plot(t,y,t1,y1);legend(‘sine’,’cosine’)

6、gridon(off)—打开、关闭坐标网格线例如:gridoff

7、zoomon(off)允许放大/缩小

3.1基本二维绘图

8、axis——控制坐标轴的刻度

■axis([xmin,xmax,ymin,ymax])

设定坐标轴的最大最小值例如:plot(t,y);axis([-12–22])■axis(‘equal’)将两轴设为相等。■axison(off)显示或关闭坐标轴3.2特殊二维绘图二维特殊绘图函数使用方法基本同plot.例如:stem(t,y)

2、bar–––绘制直方图

例如:bar(t,y)1、stem––––绘制火柴杆图3、stairs––––绘制阶梯图

例如:stairs(t,y,’r’)

3.2特殊二维绘图

4、area––––区域图例如:x=ones(1,5);area(x)

注意同bar的区别5、pie––––饼图

例如:x=[123211];y=[001000];pie(x,y)

还有其它特殊函数。。。回顾……PLOT命令的格式格式1:plot(y)格式2:plot(x,y)格式3:plot(x1,y1,x2,y2,…)格式4:plot(y,’s’)plot(x,y,’s’)plot(x1,y1,’s1’,x2,y2,’s2’…)figuresubplot3.3基本三维绘图一、plot3基本三维曲线1、格式1:plot3(x,y,z)功能:x,y,z具有相同的长度,绘图时将元素值对应的点(x,y,z)以直线相连。

例题13.3基本三维绘图x=0:pi/10:5*pi;y=sin(x);z=cos(x);figure;subplot(2,1,1);plot3(x,y,z);3.3基本三维绘图

2、格式2:plot3(x1,y1,z1,x2,y2,z2…)功能:绘制多条曲线例如:plot3(x,y,z,x,z,y)3.3基本三维绘图3、格式3:plot3(x,y,z,’s’)plot3(x1,y1,z1,’s1’,x2,y2,z2,’s2’)功能:用于设置绘图颜色和线型字符串意义同plot。例如:plot3(x,y,z,’*r’,x,z,y,’:b’)3.3基本三维绘图例题2

t=0:0.02*pi:2*pi;x=sin(t);y=cos(t);z=cos(2*t);figure;subplot(2,1,1);plot3(x,y,z,'bd');subplot(2,1,2);plot3(x,y,z,'b-',x,y,z,'bd');3.3基本三维绘图二、mesh三维网格图1、格式1:mesh(z)功能:z为二维矩阵,绘图时,以元素下标(x=1:n,y=1:m.)

作为X-Y坐标,元素值作为Z坐标,将各点连成网格。

颜色与高度成比例。3.3基本三维绘图例题3

figure;subplot(2,1,1);z=eye(10);mesh(z);subplot(2,1,2)z=peaks(20);%高斯分布函数mesh(z);Question:如何画一个立体的抽样函数图(sin(r)/r)?3.3基本三维绘图3.3基本三维绘图x=-8:0.5:8;y=x';X=ones(size(y))*x;Y=y*ones(size(x));R=sqrt(X.*X+Y.*Y);z=sin(R)./R;mesh(z);形成了33*33网格矩阵3.3基本三维绘图例如:[xx,yy]=meshgrid([1234],[1234])可以使用meshgrid()函数产生网格坐标:格式:[X,Y]=meshgrid(x,y)x,y为向量,X的行为x的拷贝,Y的列是y的拷贝,X,Y同维

x=-8:0.5:8;y=x';X=ones(size(y))*x;Y=y*ones(size(x));R=sqrt(X.*X+Y.*Y);z=sin(R)./R;mesh(z);3.3基本三维绘图可替换成:[X,Y]=meshgrid(-8:0.5:8,-8:0.5,8);3.3基本三维绘图2、格式2:mesh(x,y,z)

功能:x,y,z为三个矩阵,以各元素值为三维坐标点绘图,并连成网格。

画一个球体

[xx,yy,zz]=sphere(30);例题73.3基本三维绘图%球体函数

figure;[xx,yy,zz]=sphere(30);mesh(xx,yy,zz);3.3基本三维绘图画一个高斯分布曲面

[x,y,z]=peaks(30);例题8figure;[xx,yy,zz]=peaks(30);mesh(xx,yy,zz);3.3基本三维绘图功能:在网格下画一窗帘(垂直线)例如:meshz(x,y,z)4、格式4:meshz(x,y,z)3、格式3:meshc(x,y,z)功能:在网格下画一等值线图例如:meshc(x,y,z)例题9

[x,y,z]=peaks(30);subplot(2,1,1);mesh(x,y,z);meshc(x,y,z);subplot(2,1,2);mesh(x,y,z);meshz(x,y,z);3.3基本三维绘图三、surf三维曲面图1、格式1:surf(z)或surf(x,y,z)

基本同mesh,只是将直线变为小曲面

例如:

surf(x,y,z)3.3基本三维绘图例题10

[x,y,z]=peaks(30);subplot(1,2,1);mesh(x,y,z);subplot(1,2,2);surf(x,y,z);3.3基本三维绘图三、surf三维曲面图2、格式2:surfc(z)

surfc(x,y,z)

带等高线的曲面图例如:surfc(x,y,z)3.3基本三维绘图四、三维图形的颜色修饰

颜色是三维图形中的第四维,如果不指定,则以Z轴值为准

1、色图函数:colormap(map)通过系统预置的色图,可改变显示的颜色例如:surf(x,y,z);

colormap(hot)

colormap(spring)3.3基本三维绘图2、显示颜色条:colorbar

例如:surf(x,y,z);colorbar

3.3基本三维绘图3、颜色的浓淡处理:shading用于改变mesh或surf的小网格或曲面的着色。有三种方法:

①shadingflat:去掉黑色线条,根据小方块的值确定颜色(平滑)

②shadinginterp:根据小方块四角的值差补过度点的值确定颜色(内插)

③shadingfaceted(缺省)(小平面)3.3基本三维绘图五、图形控制1、view(方位角,俯仰角)

改变视角缺省为(-37.5,30),例如:view(0,0)(看不见Y轴)二维图形控制命令,大都适合三维图形控制2、rotate3don(off)允许旋转3、hiddenon(off)隐藏或透视被遮挡的地方

3.4特殊三维绘图1、stem3(x,y,z)三维火柴杆图:

例如:stem3(x,y,z)2、bar3(z)三维条形图(同二维)

例如:bar3([12321])3、pie3(x,p)三维饼图(同二维):

例如:pie3([123211],[001000])

还有其它特殊函数。。。动画1、命令:

moviein,getframe,movie

2、例子:axisequalM=moviein(16);forj=1:16plot(fft(eye(j+16)));M(:,j)=getframe;end动画再键入:movie(M,5)Matlab就把M中图形播放5遍。内容回顾MATLAB基本绘图:

1、基本二维绘图

2、特殊二维绘图

3、基本三维绘图

4、特殊三维绘图第4章

MATLAB数值计算

■基本的数据分析■矩阵函数■多项式运算■函数和数值积分■数据分析■稀疏矩阵主要内容4.1矩阵函数一、基本数据分析

函数功能max求各列最大值min求各列最小值mean求各列平均值std求各列标准差median求各列中间元素sum求各列元素和注:Matlab的基本数据处理功能是按列进行的。4.1矩阵函数二、矩阵函数

■矩阵的分析计算:求矩阵的行列式、秩、逆矩阵、特征向量等等;

■矩阵的各种分解:(将一个大矩阵分解为多个简单矩阵的连乘)如:三角分解、正交分解、奇异值分解等。

4.1矩阵函数二、矩阵函数

■矩阵的交集运算:格式:intersect(A,B)

功能:返回值为向量A,B的公共部分。■矩阵的并集运算:格式:union(A,B)

功能:返回值为向量A,B的公共部分。4.1矩阵函数三、线性方程组的求解(应用矩阵函数)

线性方程组一般形式:AX=B

(A为

n×m矩阵)当n=m时,此方程成为“恰定”方程当n>m时,此方程成为“超定”方程(3)当n<m时,此方程成为“欠定”方程

4.1矩阵函数三、线性方程组的求解(应用矩阵函数)

1、恰定方程组的解(有唯一的一组解)

AX=BA-1AX=A-1B

X=A-1B=A\B有两种求解方法:(1)X=inv(A)*B(速度较慢)(2)X=A\B(速度快,精度高)例x1+2x2=82x1+3x2=13

A=[1,2;2,3];B=[8;13];X=inv(A)*BXX=A\B4.1矩阵函数

2、超定方程组的解(没有精确解)

AX=B

(将A变为方阵)A’Ax=A’B

X=(A’A)-1A’B=pinv(A)*B(广义逆)有两种求解方法:(1)X=pinv(A)*B(2)X=A\B(用最小乘方法找一个精确解)4.1矩阵函数

例x1+2x2=12x1+3x2=23x1+4x2=5A=[1,2;2,3;3,4];B=[1;2;5];X=pinv(A)*BXX=A\B4.1矩阵函数3、欠定方程组的解(有无穷多个解

)有两种求解方法:(1)X=pinv(A)*B(具有最小长度或范数的解)(2)X=A\B(具有最多零元素的解)例x1+2x2+3x3=12x1+3x2+4x3=2A=[1,2,3;2,3,4];B=[1;2];X=pinv(A)*BXX=A\B4.2多项式运算一、多项式的表示一般形式:

用系数向量来表示:p=[anan-1……a1a0]%B(s)=3*s^2+6*s+9%A(s)=2*s^3+4*s^2+6*s+8B=[369];A=[2468];4.2多项式运算二、多项式的运算

1、多项式的加减

对应系数相加减,如果系数长度不等,应在前面补零。例如:p1=[123];p2=[135];p3=[13]

则:p1+p2=[258]p1+p3=[136]4.2多项式运算2、多项式的乘法(数组卷积)4.2多项式运算2、多项式的乘法格式:conv(p1,p2)(卷积)

例如:p1=[11];p2=[12];p3=conv(p1,p2)=[132];4.2多项式运算3、多项式的除法(数组解卷积)格式:[q,r]=deconv(p1,p2)(q商,r余数)

例如:p1=[11];p3=[132];[q,r]=deconv(p3,p1)4.2多项式运算三、多项式的求解

1、多项式的求导(微分)格式:polyder(p)

例如:p=[1234];

polyder(p)的运算结果为[343]4.2多项式运算2、多项式的求根

■格式:roots(p)(由多项式求根)例如:p=[132];

roots(p)的运算结果为[-2;-1]■格式:poly(r)(由根求多项式)♥当r为向量时,poly把r作为根求出多项式。如:r=[-2;-1],poly(r)的运算结果为[132]♥当r为方阵时,poly(r)即为方阵r的特征多项式

4.2多项式运算3、多项式的求值格式:polyval(p,v)(返回当x=v时多项式的值,v可以是复数)

例如:p=[123];polyval(p,1)的运算结果为6Question:求出该系统的频率响应并画出频率特性?例题clc;clearall;%多项式求值的应用%B(s)=3*s^2+6*s+9%A(s)=2*s^3+4*s^2+6*s+8%H(s)=B(s)/A(s)B=[369];A=[2468];w=linspace(0,10);BB=polyval(B,j*w);AA=polyval(A,j*w);subplot(2,2,1);plot(w,abs(BB./AA));subplot(2,2,3);plot(w,angle(BB./AA));w1=logspace(-1,1);B1=polyval(B,j*w1);A1=polyval(A,j*w1);subplot(2,2,2);semilogx(w1,abs(B1./A1));subplot(2,2,4);semilogx(w1,angle(B1./A1));例题4.2多项式运算四、多项式的拟合多项式的拟合就是用多项式函数所表示的曲线来描述一些已知的点,使这些点尽量逼近曲线。

格式:p=polyfit(x,y,n)x,y为已知的点坐标向量,n为多项式的幂次

x=[01020];y=[208040];subplot(2,1,1);plot(x,y,'*r');p=polyfit(x,y,2);subplot(2,1,2);plot((0:20),polyval(p,(0:20)));4.2多项式运算例题4.2多项式运算五、多项式的插值插值是在一些已知点之间插入一些点,使这些点的连线与已知点连线更逼近.

4.2多项式运算1、一维插值(平面插值)格式:yi=interp1(x,y,xi,’method’)

x,y

为已知的点坐标向量,

xi,yi为插入点的x和y坐标向量.‘method’:linear(线性,默认)cubic(三次,拐角更光滑)cubicspline(三次样条)%平面插值x=[01020];y=[208040];plot(x,y,'r');yi=interp1(x,y,(0:20),'cubic');holdon;plot((0:20),yi);例题4.2多项式运算

2、二维插值(立体)格式:zi=interp2(x,y,z,xi,yi,’method’)x,y为已知的点坐标向量,z为矩阵(x,y对应点的值)xi,yi

为插入点的X,Y坐标向量‘method’:同上

zi为xi,yi的插入值。%立体插值x=(-4:1:4);y=x;[x1,y1]=meshgrid(x,y);z=peaks(x1,y1);subplot(2,1,1);mesh(x1,y1,z);xi=(-4:0.2:4);yi=xi';zi=interp2(x,y,z,xi,yi,'cubic');subplot(2,1,2);mesh(xi,yi,zi+20);例题4.3函数和数值积分一、函数的绘图及分析1、绘制函数曲线格式:

fplot(‘函数名’,lims,’s’)

功能:绘制指定函数的曲线,

lims为x,y轴的最小最大值,s可指定线形

■函数和数值积分库(funfun)■特殊函数库(specfun)%函数的绘图

温馨提示

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

评论

0/150

提交评论