收藏 分销(赏)

MATLAB实用教程(2)优秀课件.pptx

上传人:二*** 文档编号:12485228 上传时间:2025-10-17 格式:PPTX 页数:1146 大小:24.68MB 下载积分:5 金币
下载 相关 举报
MATLAB实用教程(2)优秀课件.pptx_第1页
第1页 / 共1146页
本文档共1146页,全文阅读请下载到手机保存,查看更方便
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,数学软件与实验,-matlab,科学计算与仿真,推荐参考书,科学计算与仿真,推荐参考书,matlab,是什么,一个可视化的计算程序,广泛使用于从个人计算机到超级计算机范围内的各种计算机上,包括命令控制、可编程,上百个预先定义命令和函数,有许多强有力的命令,能完成大量的高级矩阵处理,强有力的二维、三维图形工具,能与其他程序一起使用,25,个,(,不断增加中,),不同的工具箱应用于特殊的应用领域,工业研究与开发的有力工具,数学教学,尤其线代,数值分析,科学计算方面的教研工具,电子学,控制理论,物理学等工程科学方面的教研工具,经济学,化学和生物学等有计算问题的所有领域中的教学与研究,名字取自矩阵实验室,(,mat,rix,lab,oratory,),matlab,不是什么,不是万能的解决工具,不是最高性能的编程语言,受计算条件限制,不能解决超大型实际问题,不能解决工具箱之外的问题种类,-,需要编写接口、算法甚至工具箱,MATLAB,的名称源自,Matrix Laboratory,,它是一种科学计算软件,专门以矩阵的形式处理数据。,MATLAB,将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛地应用于科学计算丶控制系统丶信息处理等领域的分析丶仿真和设计工作,而且利用,MATLAB,产品的开放式结构,可以非常容易地对,MATLAB,的功能进行扩充,从而在不断深化对问题认识的同时,不断完善,MATLAB,产品以提高产品自身的竞争能力。,MATLAB Compiler,是一种编译工具,它能够将那些利用,MATLAB,提供的编程语言,M,语言编写的函数文件编译生成为函数库丶可执行文件,COM,组件等等。这样就可以扩展,MATLAB,功能,使,MATLAB,能够同其他高级编程语言例如,C/C+,语言进行混合应用,取长补短,以提高程序的运行效率,丰富程序开发的手段。,目前,MATLAB,产品族可以用来进行:,数值分析,数值和符号计算,工程与科学绘图,控制系统的设计与方针,数字图像处理,数字信号处理,通讯系统设计与仿真,财务与金融工程,MATLAB,是,MATLAB,产品家族的基础,它提供了基本的数学算法,例如矩阵运算丶数值分析算法,,MATLAB,集成了,2D,和,3D,图形功能,以完成相应数值可视化的工作,并且提供了一种交互式的高级编程语言,M,语言,利用,M,语言可以通过编写脚本或者函数文件实现用户自己的算法。,利用,M,语言还开发了相应的,MATLAB,专业工具箱函数供用户直接使用。这些工具箱应用的算法是开放的可扩展的,用户不仅可以查看其中的算法,还可以针对一些算法进行修改,甚至允许开发自己的算法扩充工具箱的功能。目前,MATLAB,产品的工具箱有四十多个,分别涵盖了数据获取丶科学计算丶控制系统设计与分析丶数字信号处理丶数字图像处理丶金融财务分析以及生物遗传工程等专业领域。,Simulink,是基于,MATLAB,的框图设计环境,可以用来对各种动态系统进行建模丶分析和仿真,它的建模范围广泛,可以针对任何能够用数学来描述的系统进行建模,例如航空航天动力学系统丶卫星控制制导系统丶通讯系统丶船舶及汽车等等,其中了包括连续丶离散,条件执行,事件驱动,单速率丶多速率和混杂系统等等。,Simulink,提供了利用鼠标拖放的方法建立系统框图模型的图形界面,而且,Simulink,还提供了丰富的功能块以及不同的专业模块集合,利用,Simulink,几乎可以做到不书写一行代码完成整个动态系统的建模工作。,Stateflow,是一个交互式的设计工具,它基于有限状态机的理论,可以用来对复杂的事件驱动系统进行建模和仿真。,Stateflow,与,Simulink,和,MATLAB,紧密集成,可以将,Stateflow,创建的复杂控制逻辑有效地结合到,Simulink,的模型中。,在,MATLAB,产品族中,自动化的代码生成工具主要有,Real-Time Workshop,(,RTW,)和,Stateflow Coder,,这两种代码生成工具可以直接将,Simulink,的模型框图和,Stateflow,的状态图转换成高效优化的程序代码。利用,RTW,生成的代码简洁丶可靠丶易读。目前,RTW,支持生成标准的,C,语言代码,并且具备了生成其他语言代码的能力。整个代码的生成丶编译以及相应的目标下载过程都是自动完成的,用户需要做得仅仅使用鼠标点击几个按钮即可。,MathWorks,公司针对不同的实时或非实时操作系统平台,开发了相应的目标选项,配合不同的软硬件系统,可以完成快速控制原型(,Rapid Control Prototype,)开发丶硬件在回路的实时仿真(,Hardware-in-Loop,)丶产品代码生成等工作。,另外,,MATLAB,开放性的可扩充体系允许用户开发自定义的系统目标,利用,Real-Time Workshop Embedded Coder,能够直接将,Simulink,的模型转变成效率优化的产品级代码。代码不仅可以是浮点的,还可以是定点的。,MATLAB,开放的产品体系使,MATLAB,成为了诸多领域的开发首选软件,并且,,MATLAB,还具有,300,余家第三方合作伙伴,分布在科学计算丶机械动力丶化工丶计算机通讯丶汽车丶金融等领域。接口方式包括了联合建模丶数据共享丶开发流程衔接等等。,MATLAB,结合第三方软硬件产品组成了在不同领域内的完整解决方案,实现了从算法开发到实时仿真再到代码生成与最终产品实现的完整过程。主要的典型应用包括:,控制系统的应用与开发,快速控制原型与硬件在回路仿真的统一平台,dSPACE,信号处理系统的设计与开发,全系统仿真与快速原型验证,,TI DSP,丶,Lyrtech,等信号处理产品软硬件平台,通信系统设计与开发,结合,RadioLab 3G,和,Candence,等产品,机电一体化设计与开发,全系统的联合仿真,结合,Easy 5,丶,Adams,等,Matlab,课程的组织结构,绪论,基础知识,数学运算,基本编程,数据显示 及存取,符号计算,数值计算,图形用户界面,GUI,Simulink,仿真,外部接口,第一章 概述,MATLAB,将计算、可视化和编程等功能集于一个易于使用的环境,并遇有如下特点:,功能强大;,简单易学;,编程效率高。,1.1 MATLAB,简介及安装,1,MATLAB,的发展历程,2,MATLAB,的特点,3,MATLAB,的安装,1,MATLAB,的发展历程,1980,年,美国新墨西哥大学计算机科学,系主任,Cleve,着手编写供学生使用的子程,序接口程序,取名为,MATLAB,;,1984,年,推出了,MATLAB,第一个商业版,本;,1992,年,推出,MATLAB 4.0,版;,1997,年,推出,MATLAB 5.0,版;,2000,年,推出,MATLAB 6.0,版;,2004,年,推出,MATLAB 7.0,版;,2008,年,推出,MATLAB 7.6,版;,2012,年,推出,MATLAB R2012A,版,2,MATLAB,的特点,开发环境,编程,数值处理,图形化,图形用户界面,文件,I/O,和外部应用程序接口,3,MATLAB,的安装,MATLAB,对,PC,系统的要求,1.2 MATLAB,的目录结构,安装,MATLAB,后,在安装目录下将包含如下文件夹。,续表,1.3 MATLAB,的工作环境,1,菜单和工具栏,2,命令窗口,3,历史命令窗口,4,当前工作目录窗口,5,工作空间窗口,本节介绍,MATLAB,的工作界面和基本的操作方法。,MATLAB,的工作界面主要包括:,菜单;,工具栏;,命令窗口;,历史命令窗口;,当前工作目录窗口;,工作空间窗口。,MATLAB,工作环境,1,菜单和工具栏,这里只简单介绍默认情况下的菜单和工具栏。,【,File,】菜单主要用于对文件的处理。,【,Edit,】菜单主要用于复制、粘贴等操,作,与一般,Windows,程序的类似,在此,不作详细介绍。,【,Debug,】菜单用于调试程序。,【,Desktop,】菜单用于设置主窗口中需要,打开的窗口。,【,Window,】菜单列出当前所有打开的窗,口。,【,Help,】菜单用于选择打开不同的帮助系,统。,当用户单击“,Current Directory”,窗口时,使得该窗口成为活动窗口,同时增加一个如下图所示的菜单【,View,】,用于设置如何显示当前目录下的文件。,当用户单击“,Workspace”,窗口时,使得该窗口成为活动窗口,同时增加如下图所示的菜单【,View,】和【,Graphics,】。,2,命令窗口,命令窗口是,MATLAB,的主要交互窗口,用于输入命令并显示除图形以外的所有执行结果。,MATLAB,命令窗口中的“,”,为运算提示,符,表,MATLAB,处于准备状态。,当在提示符后输入一段程序或一段运算式,后【,Enter,】键,,MATLAB,会给出计算结,果,并再次进入准备状态(所得结果将被,保存在工作空间窗口中)。,单击命令窗口右上角的“”按钮,可以使,命令窗口脱离主窗口而成为一个独立的窗,口。,3,历史命令窗口,主要用于记录所有执行过的命令;,保留自安装后所有使用过命令的历史记,录,并标明使用时间;,可以通过用鼠标双击某一历史命令来重新,执行该命令;,可以成为一个独立的窗口。,通过上下文菜单,可删除或粘贴历史记录;,可为选中的表达式或命令创建一个,M,文件;,可为表达式或命令创建快捷按钮。,4,当前工作目录窗口,当前工作目录是指,MATLAB,运行文件时的目录。只有在当前工作目录或搜索路径下的文件、函数可以被运行或调用。如下图所示。,5,工作空间窗口,工作空间窗口将显示目前内存中所有的,MATLAB,变量的变量名、数据结构、字节数以及类型等信息,如下图所示。,1.4 MATLAB,的通用命令,1,常用命令,2,输入内容的编辑,3,标点,4,搜索路径与扩展,通用命令是,MATLAB,中经常使用的一组命令,这些命令可以用来管理目录、函数、变量、工作空间、文件和窗口等。下面对这些命令进行介绍。,1,常用命令,常用命令的功能,2,输入内容的编辑,在命令窗口中,,MATLAB,提供了控制光标位置和进行简单编辑的键盘按键,部分常用的键盘按键及其功能如下表所示。,3,标点,在,MATLAB,中,一些标点符号被赋予了特殊的功能,如下表所示。,4,搜索路径与扩展,用户自己书写的函数有可能并没有保存在搜索路径下。要解决这个问题,只需把程序所在的目录扩展成,MATLAB,的搜索路径即可。,(,1,)查看,MATLAB,的搜索路径,选择,MATLAB,主窗口中的【,File,】,|,【,Set Path,】菜单,进入【设置搜索路径】对话框。通过该对话框可为,MATLAB,添加或删除搜索路径。,在命令窗口中输入,path,或,genpath,可得到,MATLAB,的所有搜索路径,具体代码如下:,(,2,)设置,MATLAB,的搜索路径,方法一:在,MATLAB,命令窗口中输入,editpath,或,pathtool,命令或通过【,File,】,|,【,Set Path,】菜单,进入“设置搜索路,径”对话框,通过该对话框编辑搜索路,径。,方法二:在命令窗口执行“,path(path,D:Study)”,,然后通过“设置搜索路,径”对话框查看“,D:Study”,是否在搜索路,径中。,方法三:在命令窗口执行“,addpath,D:Study-end”,,将新的目录加到整个,搜索路径的末尾。如果将,end,改为,begin,,可以将新的目录加到整个搜索路,径的开始。,1.5 MATLAB,的帮助系统,1,命令窗口查询帮助系统,2,联机帮助系统,3,联机演示系统,MATLAB,为用户提供了非常完善的帮助系统。下面分别介绍,MATLAB,的三类帮助系统。,1,命令窗口查询帮助系统,常见的帮助命令,2,联机帮助系统,用户可以通过下述方法进入,MATLAB,的联机帮助系统。,直接单击,MATLAB,主窗口中的“”按钮;,选中,Help,菜单的前,4,项中的任意一项;,在命令窗口中执行,helpwin,、,helpdesk,或,doc,。,3,联机演示系统,可以通过以下方式打开联机演示统。,选择,MATLAB,主窗口菜单的【,Help,】,|,【,Demos,】选项;,在命令窗口输入,demos,;,直接在帮助页面上选择,Demos,页。,1.6 MATLAB,示例,下面以一个简单的例子展示如何使用,MATLAB,进行简单的数值计算。,习 题,1,简述,MATLAB,的主要功能。,2,在命令窗口输入“,w=3+2”,,然后依次使用,clear,和,clc,命,令,分别观察命令窗口、工作空间窗口和历史命令窗口,的变化。,3,将硬盘上一已有目录,加入到搜索路径,并将其设置为,当前工作目录。,4,通过命令窗口,查询函数,sin(),的用法。,5,通过联机帮助系统,查询函数,inv(),的用法。,6,通过联机演示系统,查询并运行“,Control Systems,Toolboxes”,下的“,Case Studies”,中的“,Yaw Damper,for a 747 Aircraft”,演示程序。,7,在命令窗口依次执行“,w=5;”,、“,p=2*w”,和“,q=p+w”,。,8,在命令窗口同时执行下述代码:,w=5,;,p=2*w,q=p+w,第二章 基础知识,本章着重介绍的,MATLAB,基础知识包括:,数据类型;,基本矩阵操作;,运算符;,字符串处理函数。,目录,2.1,数 据 类 型,2.2,基本矩阵操作,2.3,运算符和特殊符号,2.4,字符串处理函数,习 题,2.1,数 据 类 型,1,数值类型,2,逻辑类型,3,字符和字符串类型,4,结构体类型,MATLAB,中定义了很多种数据类型。本节讨论,MATLAB,中主要的数据类型及其使用方法。,在,MATLAB,中有,15,种基本数据类型,每种基本数据类型均以数组,/,矩阵的形式出现。,1,数值类型,数值类型包含,整数;,浮点数;,复数;,Inf,;,NaN,(,1,)整数类型,MATLAB,支持,1,、,2,、,4,和,8,字节的有符号整数和无符号整数。数据类型的名称、表示范围和转换函数如下表所示。,(,2,)浮点数类型,MATLAB,有单精度和双精度两种浮点数。其名称、存储空间、表示范围和转换函数如下表所示。,(,3,)复数类型,复数包含实部和虚部。在,MATLAB,中可以用,i,或者,j,来表示虚部。,(,4,),Inf,和,NaN,Inf,和,-Inf,分别表示正无穷大和负无穷,大。除法运算中除数为,0,或者运算结果溢,出都会导致,inf,或,-inf,的运行结果。,在,MATLAB,中用,NaN,(,Not a Number,),来表示一个既不是实数也不是复数的数,值。,2,逻辑类型,在,MATLAB,中逻辑类型包含,true,和,false,,分别由,1,和,0,表示。在,MATLAB,中用函数,logical(),将任何非零的数值转换为,true,(即,1,),将数值,0,转换为,false,(即,0,)。,3,字符和字符串类型,在,MATLAB,中,数据类型(,char,)表示一个字符。一个,char,类型的,1,n,数组称为字符串,string,。,4,结构体类型,结构体类型是一种由若干属性(,field,)组成的,MATLAB,数组,其中的每个属性可以是任意数据类型。,下图表示了一个结构体(,Personel,),它包括,3,个属性(,Name,、,Score,和,Salary,),其中,Name,是一个字符串,,Score,是一个数值,,Salary,是一个,1,5,的向量。,(,1,)结构体数组的构造,构造一个结构体(数组)有两种方法。,利用赋值语句,通过赋值语句为结构体中的每个指定属性赋值,从而构造结构体。,利用函数,struct(),在,MATLAB,中,函数,struct(),的具体用法如下:,其中,,strArray,、,field,和,val,分别表示结构体名、属性名和相应的属性值。,(,2,)结构体数组的访问,通过结构体数组的下标引用,可以访问任意元素的所有属性,同时可以对属性进行赋值。,2.2,基本矩阵操作,2.2.1,矩阵的构造,2.2.2,矩阵大小的改变,2.2.3,矩阵下标引用,2.2.4,矩阵信息的获取,2.2.5,矩阵结构的改变,2.2.6,稀疏矩阵,在,MATLAB,中,所有的数据均以二维、三维或高维矩阵的形式存储,每个矩阵的单元可以是数值类型、逻辑类型、字符类型或者其他任何数据类型。,对于标量,可以用,1,1,矩阵来表示;,对于一组,n,个数据,可以用,1,n,矩阵来表,示;,对于多维数组,可以用多维矩阵来表示。,在,MATLAB,中,用命令,whos,来显示数据的类型、存储空间等信息。,2.2.1,矩阵的构造,1,简单矩阵构造,2,特殊矩阵构造,3,向量构造,1,简单矩阵构造,最简单的方法是采用矩阵构造符“,”,。构造,1,n,矩阵(行向量)时,可以将各元素依次放入矩阵构造符,内,并且以空格或者逗号分隔;构造,m,n,矩阵时,每行如上处理,并且行与行之间用分号分隔。,2,特殊矩阵构造,在,MATLAB,中还提供一些函数用来构造特殊矩阵,这些函数如下表所示。,续表,3,向量构造,最简单的方法是采用向量构造符“:”,其常用的用法如下。,(,1,),a:b,返回以,a,为起点,以,1,为步长,且所有取值在,a,与,b,之间的向量。,(,2,),a:s:b,返回以,a,为起点,以,s,为步长,且所有取值在,a,与,b,之间的向量。,2.2.2,矩阵大小的改变,1,矩阵的合并,2,矩阵行列的删除,1,矩阵的合并,矩阵的合并就是把两个或者两个以上的矩阵连接成一个新矩阵。矩阵构造符,可用于构造矩阵,并可以作为一个矩阵合并操作符。,表达式,C,=,A B,在水平方向合并矩阵,A,和,B,;,表达式,C,=,A,;,B,在竖直方向合并矩阵,A,和,B,。,具有相同行数的两个矩阵,合并为一个新矩阵,不具有相同行数的两个矩阵,不允许合并为一个新矩阵,除了矩阵合并符“,”,外,还可以使用矩阵合并函数。矩阵合并函数的描述和基本调用格式如下表所示。,2,矩阵行列的删除,要删除矩阵的某一行或者是某一列,只需将该行或者该列赋予一个空矩阵,即可。,2.2.3,矩阵下标引用,1,访问单个元素,2,线性引用元素,3,访问多个元素,本小节将介绍通过矩阵下标来存取元素值的方法,包括访问单个元素、线性引用元素和访问多个元素等。,1,访问单个元素,2,线性引用元素,对于矩阵,A,,线性引用元素的格式为,A,(,k,),。通常这样的引用用于行向量或列,向量,但也可用于二维矩阵。,MATLAB,按列优先排列的一个长列向量格,式(线性引用元素)来存储矩阵元素。,3,访问多个元素,操作符“:”可以用来表示矩阵的多个元素。若,A,是二维矩阵,其主要用法如下:,A(:,:),返回矩阵,A,的所有元素。,A(i,:),返回矩阵,A,第,i,行的所有元素。,A(i,k1:k2),返回矩阵,A,第,i,行的自,k,1,到,k,2,列的所有元素。,A(:,j),返回矩阵,A,第,j,列的所有元素。,A(k1:k2,j),返回矩阵,A,第,j,列的自,k,1,到,k,2,行的 所有元素。,若,A,是多维矩阵,也可以通过类似的方法实现对其访问。,2.2.4,矩阵信息的获取,1,矩阵尺寸信息,2,元素的数据类型,3,矩阵的数据结构,本小节介绍如何获取矩阵的信息,包括矩阵的尺寸、元素的数据类型和矩阵的数据结构等。,1,矩阵尺寸信息,矩阵尺寸函数可以得到矩阵的形状和大小信息,这些函数如下表所示。,2,元素的数据类型,查询元素数据类型信息的部分函数如下表所示。,3,矩阵的数据结构,判断矩阵是否为某种指定数据结构的函数如下表所示。,2.2.5,矩阵结构的改变,改变矩阵结构的函数表,2.2.6,稀疏矩阵,1,稀疏矩阵的创建,2,查看稀疏矩阵,3,稀疏矩阵的运算规则,在,MATLAB,中,可以用满矩阵存储方,式和稀疏矩阵存储方式来存储矩阵。,若一个矩阵只有少数的元素非零,称为稀,疏矩阵。稀疏矩阵非零元素及其对应的下,标来表示。,用户可以创建双精度、复数和逻辑等类型,的稀疏矩阵。,1,稀疏矩阵的创建,在,MATLAB,中,用函数,sparse(),实现满矩阵到稀疏矩阵的转换。,在,MATLAB,中用函数,full(),实现稀疏矩阵,到满矩阵的转换。,在,MATLAB,中,还可以用函数,sparse(),直接创建稀疏矩阵,其具体用法如下。,S,=sparse(,i,j,s,m,n,),,其中,,i,和,j,分别是稀疏矩阵非零元素的行和列下标,,s,为相应的非零元素的值,,m,和,n,分别是矩阵的行数和列数。,MATLAB,还提供一些函数用于创建特殊稀疏矩阵,这些函数如下表所示。,2,查看稀疏矩阵,MATLAB,提供一些函数用于查看稀疏矩阵的信息,如下表所示。,下面的例子都是基于,MATLAB,自带的稀疏矩阵,west0479,。,3,稀疏矩阵的运算规则,在,MATLAB,中的各种命令和函数都可以用于稀疏矩阵的运算,并且遵循如下的一些约定。,(,1,)把矩阵变为标量或者定长向量的函数总,是给出满矩阵;,(,2,)对于标量或者定长向量变换到矩阵的函,数,如函数,zeros(),、,ones(),、,eye(),、,rand(),等总是给出满矩阵;,(,3,)从矩阵到矩阵的变换函数将以原矩阵的,形式出现;,(,4,)在参与矩阵扩展的子矩阵(如,A B,;,C,D,)中,只要有一个是稀疏矩阵,那,么所得的结果也是稀疏矩阵;,(,5,)在矩阵引用中,将仍以原矩阵形式给出,结果。,2.3,运算符和特殊符号,2.3.1,算数运算符,2.3.2,关系运算符,2.3.3,逻辑运算符,2.3.4,运算优先级,在,MATLAB,中提供了丰富的运算符,包括算数、关系和逻辑等,3,种运算符。,2.3.1,算数运算符,在,MATLAB,中,算数运算符的用法和功能如下表所示。,续表,补充说明,AB,的用法如下:,当,A,和,B,都为矩阵时,此运算无定义;,当,A,和,B,都是标量时,表示标量,A,的,B,次,幂;,当,A,是标量且,B,为矩阵时,表示标量,A,的,B,中各元素次幂;,当,A,为方阵且,B,为正整数时,表示矩阵,A,的,B,次乘积;,当,A,为方阵且,B,为负整数时,表示矩阵,A,逆,的负,B,次乘积;,当,A,为可对角化的方阵且,B,为非整数时,有,如下表达式:,2.3.2,关系运算符,MATLAB,中关系运算符的用法和功能如下表所示。,值得注意的是,关系运算符只针对两个相同长度的矩阵,或其中之一是标量的情况进行运算。,对于前者,是指两个矩阵的对应元素进行比,较,返回具有相同长度的矩阵;,对于后者,是指这个标量与另一个矩阵的每元,素进行运算。,关系运算,C,=,f,(,A,B,),的运算结果只有,0,和,1,两种情况,其中,函数,f,(),表示关系运算符,,0,表示不满足条件,,1,表示满足条件。,2.3.3,逻辑运算符,MATLAB,提供元素方式和比特方式等逻辑运算符。元素方式逻辑运算符的用法和功能如下表所示,其中例子采用如下矩阵:,元素方式逻辑运算符,&,、,|,和,与函数,and(),、,or(),和,not(),是等价的。,比特方式逻辑运算符只接受逻辑和非负整数类型的输入变量,它是针对输入变量的二进制进行逻辑运算。,比特方式逻辑运算符的用法和功能如下表所示,表中例子采用,A,=28,和,B,=200,,其对应的二进制分别为,11100,和,11001000,。,2.3.4,运算优先级,运算符的优先级决定表达式求值顺序,;,具有相同优先级的运算符从左到右依次进,行运算,;,不同优先级的运算符采用先进行优先高的,运算。,运算符的优先等级表,由表中可以看到,括号的优先级别最高,因此可以用括号来改变默认的优先等级。,2.4,字符串处理函数,2.4.1,字符串的构造,2.4.2,字符串的比较,2.4.3,字符串的查找和替换,2.4.4,字符串与数值间的转换,MATLAB,提供了丰富的字符串操作,包括字符串的创建、合并、比较、查找以及与数值之间的转换。,2.4.1,字符串的构造,在,MATLAB,中,可以用一对单引号来表示字符串。,2.4.2,字符串的比较,1,字符串比较函数,2,用关系运算符比较字符串,在,MATLAB,中提供了对字符串、字符串数组和字符子串的比较功能。,1,字符串比较函数,在,MATLAB,中,字符串比较函数如下表所示。,2,用关系运算符比较字符串,在,MATLAB,中,可以对字符串运用关系运算符,但要求两个字符串具有相同的长度,或者其中一个是标量。,2.4.3,字符串的查找和替换,MATLAB,提供的一些字符串查找和替换函数如下表所示。,2.4.4,字符串与数值间的转换,MATLAB,提供的一些数值转换为字符串函数如下表所示。,续表,MATLAB,提供的一些字符串转换为数值函数如下表所示。,习 题,1,计算复数,3+4i,与,56i,的乘积。,2,构建结构体,Students,,属性包含,Name,、,Age,和,Email,,数据包括,Zhang,18,zhang,zhang,、,Wang,21,和,Li,,构建后读取,所有,Name,属性值,并且修改,Zhang,的,Age,属,性值为,19,。,3,用满矩阵和稀疏矩阵存储方式分别构造下述矩,阵:,4,采用向量构造符得到向量,1,5,9,41,。,5,按水平和竖直方向分别合并下述两个矩阵:,6,分别删除第,5,题两个结果的第,2,行。,7,分别将第,5,题两个结果的第,2,行最后,3,列的数值,改为,11 12 13,。,8,分别查看第,5,题两个结果的各方向长度。,9,分别判断,pi,是否为字符串和浮点数。,10,分别将第,5,题两个结果均转换为,2,9,的矩阵。,11,计算第,5,题矩阵,A,的转秩。,12,分别计算第,5,题矩阵,A,和,B,的,A,+,B,、,A,.*,B,和,A,B,。,13,判断第,5,题矩阵,A,和,B,中哪些元素值不小于,4,。,14,分别用函数,strcat(),和矩阵合并符合并如下字,符串:,The picture is,和,very good,。,15,创建字符串数组,其中元素分别为,Picture,和,Pitch ,。,16,在第,14,题结果中查找字符串,e,。,17,在第,15,题结果中匹配字符串,Pi,。,18,将字符串,very good,转换为等值的整数。,19,将十进制的,50,转换为二进制的字符串。,20,将十六进制的字符串,50,转换为三进制的整,数。,第三章 数学运算,本章将着重介绍,MATLAB,中与数学运算有关的函数和概念。,在,MATLAB,中一切数据均能以矩阵的形式表示:,针对矩阵整体的数学运算,称之为矩阵运,算;,针对矩阵元素的数学运算,称之为矩阵元,素运算。,目录,3.1,矩 阵 运 算,3.2,矩阵元素运算,习 题,3.1,矩 阵 运 算,3.1.1,矩阵分析,3.1.2,线性方程组,3.1.3,矩阵分解,3.1.4,矩阵的特征值和特征向量,3.1.5,矩阵相似变换,3.1.6,非线性运算,矩阵运算是线性代数中极其重要的部分,,MATLAB,具有强大的矩阵运算能力。,3.1.1,矩阵分析,1,向量间的距离,2,矩阵的秩,3,矩阵的行列式,4,矩阵的迹,5,矩阵的化零矩阵,6,矩阵的正交空间,7,矩阵的简化梯形形式,8,矩阵空间之间的角度,MATLAB,提供的部分矩阵分析函数如下表所示。,1,向量间的距离,2,矩阵的秩,矩阵,A,中线性无关的列向量个数称为列秩,线性无关的行向量个数称为行秩。可以证明列秩与行秩是相等的。,3,矩阵的行列式,4,矩阵的迹,矩阵的迹定义为矩阵对角元素之和。在,MATLAB,中用函数,trace(),来计算矩阵的迹。,5,矩阵的化零矩阵,对于非满秩矩阵,A,,若存在矩阵,Z,使得,AZ,=0,且,ZTZ,=,I,,则称矩阵,Z,为矩阵,A,的化零矩阵。在,MATLAB,中用函数,null(),来计算矩阵的化零矩阵。,6,矩阵的正交空间,矩阵,A,的正交空间,Q,满足,QTQ,=,I,,且矩阵,Q,与,A,具有相同的列基底。,7,矩阵的简化梯形形式,矩阵,A,的简化梯形形式为 ,其中,Ir,为,r,阶单位矩阵。,8,矩阵空间之间的角度,矩阵空间之间的角度代表具有相同行数的两个矩阵线性相关程度,夹角越小代表线性相关度越高。,3.1.2,线性方程组,线性方程组求解问题,可以表述为给定两个矩阵,A,和,B,,求解,X,使得,AX=B,或,XA=B,。,XA=B,可以表示为,AY=B,,且,X=Y,。下面仅讨论,AX=B,的情况。,3.1.3,矩阵分解,1,Cholesky,分解,2,LU,分解,3,QR,分解,4,奇异值分解,5,Schur,分解,矩阵分解是把一个矩阵分解成比较简单或者对它性质比较熟悉的若干矩阵的乘积的形式。,本小节将介绍几种矩阵分解的方法。,矩阵分解函数表,1,Cholesky,分解,Cholesky,分解是把对称正定矩阵,A,表示为上三角矩阵,R,的转置与其本身的乘积,即,A,=,RTR,。,对于稀疏矩阵,,MATLAB,中用函数,cholinc(),计算不完全,Cholesky,分解,具体用法如下:,R,=full(cholinc(sparse,(,X),DROPTOL,),,其中,DROPTOL,为不,完全,Cholesky,分解的丢失容限;,R,=full(cholinc(sparse(,X),0),,完,全,Cholesky,分解。,2,LU,分解,高斯消去法又称,LU,分解,,将任意一个方阵,A,分解为一个交换下三角,矩阵,L,和一个上三角矩阵,U,的乘积,即,A=LU,。,交换下三角矩阵为下三角矩阵经行变换的,结果。,LU,分解在,MATLAB,中用函数,lu(),来实现,具体用法如下:,L,U,=lu(,X,),,,X,为一个方阵,,L,为交换,下三角矩阵,,U,为上三角矩阵,满足关系,X=L*U,;,L,U,P,=lu(,X,),,,X,为一个方阵,,L,为下,三角矩阵,,U,为上三角矩阵,,P,为置换矩,阵,满足关系,P*X=L*U,或,X=P-1,*L*U,。,考虑线性方程组,AX=B,和矩阵,A,的,LU,分解,线性方程组可改写成,L*U*X=B,,由于左除算符,可以快速处理三角矩阵,因此:,X,=,U,(,L,B,),矩阵的行列式和逆也可以利用,LU,分解来计算,如,det(,A,)=det(,L,)*det(,U,),inv(,A,)=inv(,U,)*inv(,L,),对于稀疏矩阵,在,MATLAB,中提供了函数,luinc(),来做不完全,LU,分解,其具体用法如下:,L U,=luinc(,X,DROPTOL,),,其中,X,、,L,和,U,的含义与函数,lu(),中的变量相同,,DROPTOL,为,不完全,LU,分解的丢失容限。当,DROPTOL,设为,0,时,退化为完全,LU,分解。,L,U,=luinc(,X,0),,,0,级不完全,LU,分解。,L,U,P,=luinc(,X,0),,,0,级不完全,LU,分解。,3,QR,分解,QR,分解就是将,mn,的矩阵,A,分解为,mn,的矩阵,Q,和,nn,的上三角矩阵,R,的乘积,且,Q*Q=I,,即,A=Q*R,。,在,MATLAB,中,QR,分解是由函数,qr(),来实现,其具体用法如下:,Q,R,=qr(,A,),满足,A=Q*R,。,R,=qr(,A,),,返回上三角矩阵,R,。,4,奇异值分解,奇异值分解就是将,m,n,的矩阵,A,分解为,A=U*S*V,,其中,U,为,m,m,的酉矩阵,,V,为,n,n,的酉矩阵,,S,为,m,n,的矩阵,并可如下表示:,,其中 ,,在,MATLAB,中奇异值分解是由函数,svd(),来实现,其具体用法如下:,5,Schur,分解,Schur,分解就是将复方阵,A,分解为,A=U*L*U,,其中,U,为酉矩阵,,L,为上(下)三角矩阵,其对角线元素为,A,的特征值。,在,MATLAB,中,Schur,分解是由函数,schur(),来实现,其具体用法如下:,U,L,=schur(,A,),,满足,A=U*L*U,,,其中,L,为上三角矩阵。,L,=schur(,A,),,返回上三角矩阵,L,。,3.1.4,矩阵的特征值和特征向量,方阵,A,的特征值,和其对应的特征向量,满足下式:,A,*=*,在,MATLAB,中用函数,eig(),来计算特征值和其对应的特征向量,其具体用法如下:,d,=eig(,A,),,返回矩阵,A,的所有特征值。,V,D,=eig(,A,),,返回矩阵,A,的特征值和,特征向量。,3.1.5,矩阵相似变换,1,对角阵变换,2,Jordan,变换,矩阵相似变换是指,对于方阵,A,和非奇异矩阵,B,可得到相似矩阵,X=B-,1,*A*B,。,1,对角阵变换,对于方阵,A,,若,V D=eig(A),得到的矩阵,V,非奇异,则,A,可经过相似变换得到对角阵,即,D=V-,1,*A*V,,也称矩阵,A,可对角化。,2,Jordan,变换,对于方阵,A,,若,V D=eig(A),得到的矩阵,V,奇异,则,A,经过相似变换将不能得到对角阵,只能得到其对应的,Jordan,标准型。,在,MATLAB,中用函数,jordan(),来实现,Jordan,变换,其具体用法如下:,V,D,=jordan(,A,),,满足,D=V-1*A*V,。,D,=jordan(,A,),,返回矩阵,A,对应的,Jordan,标准型。,3.1.6,非线性运算,1,矩阵指数运算,2,矩阵对数运算,3,矩阵开平方运算,4,通用矩阵运算,MATLAB,提供一些矩阵的非线性运算函数,其功能如下表所示。,1,矩阵指数运算,2,矩阵对数运算,矩阵对数运算是矩阵指数运算的逆运算,在,MATLAB,中用函数,logm(),来计算矩阵对数,其具体用法如下:,L,=logm(,A,),,返回矩阵,A,的对数。,3,矩阵开平方运算,对于方阵,A,,可以计算它的开平方得到矩阵,X,,即满足,X*X=A,。如果矩阵,A,是奇异的,它有可能不存在平方根,X,。,在,MATLAB,中,有两种计算矩阵,A,平方根的方法,即,A,0.5,和,sqrtm(,A,),。函数,sqrtm(),比,A,0.5,的运算精度更高,其具体用法如下:,X,=sqrtm(,A,),,返回矩阵,A,的平方根,X,。,4,通用矩阵运算,MATLAB,提供通用矩阵运算的函数,funm(),,其具体用法如下:,F,=funm(,A,fun),,将指定函数,fun,作用,在方阵,A,上。,可以使用的指定函数,fun,如下表所示。,3.2,矩阵元素运算,3.2.1,三角函数,3.2.2,指数和对数函数,3.2.3,复数函数,3.2.4,截断和求余函数,3.2.5,特殊函数,本节将介绍矩阵元素的数学函数:,包括三角函数;,指数,/,对数函数;,复数函数;,截断,/,求余函数;,特殊函数。,3.2.1,三角函数,MATLAB,提供一些三角函数,其功能如下表所示。,续表,3.2.2,指数和对数函数,MATLAB,提供一些指数和对数函数。,指数和对数函数表,3.2.3,复数函数,MATLAB,提供一些复数函数,其功能如下表所示。,3.2.4,截断和求余函数,MATLAB,提供一些截断和求余函
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服