第2章 Matlab基础_第1页
第2章 Matlab基础_第2页
第2章 Matlab基础_第3页
第2章 Matlab基础_第4页
第2章 Matlab基础_第5页
已阅读5页,还剩161页未读 继续免费阅读

下载本文档

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

文档简介

1、MATLAB 数学类科技软件 数值计算型:数值计算型: MatLab MathCAD 数学分析型数学分析型 : Maple Mathematic 基本功能 nMATLAB在数学类科技应用软件中在数值 计算方面首屈一指。MATLAB可以进行矩 阵运算、绘制函数和数据、实现算法、创 建用户界面、连接其他编程语言的程序等, 主要应用于工程计算、控制设计、信号处 理与通讯、图像处理、信号检测、金融建 模设计与分析等领域。 nMATLAB的基本数据单位是矩阵,它的指令表达 式与数学、工程中常用的形式十分相似,故用 MATLAB来解算问题要比用C,FORTRAN等语言 完成相同的事情简捷得多,并且math

2、work也吸 收了像Maple等软件的优点,使MATLAB成为一个 强大的数学软件。在新的版本中也加入了对C, FORTRAN,C+ ,JAVA的支持。可以直接调用, 用户也可以将自己编写的实用程序导入到 MATLAB函数库中方便自己以后调用,此外许多 的MATLAB爱好者都编写了一些经典的程序,用 户可以直接进行下载就可以用。 MATLAB简介 nMATLAB是矩阵实验室(Matrix Laboratory) 的简称,是美国MathWorks公司出品的商 业数学软件,用于算法开发、数据可视化、 数据分析以及数值计算的高级技术计算语 言和交互式环境,主要包括MATLAB和 Simulink两大

3、部分。 应用 MATLAB 产品族可以用来进行以下各种工作: n 数值分析 n 数值和符号计算 n 工程与科学绘图 n 控制系统的设计与仿真 n 数字图像处理 技术 n 数字信号处理 技术 n 通讯系统设计与仿真 n 财务与金融工程 发展历程 n20世纪70年代,美国新墨西哥大学计算机科学 系主任Cleve Moler为了减轻学生编程的负担, 用FORTRAN编写了最早的MATLAB。1984年由 Little、Moler、Steve Bangert合作成立了的 MathWorks公司正式把MATLAB推向市场。到20 世纪90年代,MATLAB已成为国际控制界的标准 计算软件。 n版本从19

4、84年的MATLAB1.0到2010.3.5的 MATLAB7.10 优势 n(1)友好的工作平台和编程环境)友好的工作平台和编程环境 MATLAB由一系列工具组成。这些工具方便用户使用 MATLAB的函数和文件,其中许多工具采用的是图形用 户界面。包括MATLAB桌面和命令窗口、历史命令窗口、 编辑器和调试器、路径搜索和用于用户浏览帮助、工作 空间、文件的浏览器。随着MATLAB的商业化以及软件 本身的不断升级,MATLAB的用户界面也越来越精致, 更加接近Windows的标准界面,人机交互性更强,操作 更简单。而且新版本的MATLAB提供了完整的联机查询、 帮助系统,极大的方便了用户的使用

5、。简单的编程环境 提供了比较完备的调试系统,程序不必经过编译就可以 直接运行,而且能够及时地报告出现的错误及进行出错 原因分析。 n(2)简单易用的程序语言)简单易用的程序语言 Matlab一个高级的矩阵/阵列语言,它包含控制语句、函 数、数据结构、输入和输出和面向对象编程特点。用户 可以在命令窗口中将输入语句与执行命令同步,也可以 先编写好一个较大的复杂的应用程序(M文件)后再一 起运行。新版本的MATLAB语言是基于最为流行的C 语言基础上的,因此语法特征与C语言极为相似, 而且更加简单,更加符合科技人员对数学表达式的书写 格式。使之更利于非计算机专业的科技人员使用。而且 这种语言可移植性

6、好、可拓展性极强,这也是MATLAB 能够深入到科学研究及工程计算各个领域的重要原因。 n(3)强大的科学计算机数据处理能力)强大的科学计算机数据处理能力 MATLAB是一个包含大量计算算法的集合。其拥有600多 个工程中要用到的数学运算函数,可以方便的实现用户 所需的各种计算功能。函数中所使用的算法都是科研和 工程计算中的最新研究成果,而且经过了各种优化和容 错处理。在通常情况下,可以用它来代替底层编程语言, 如C和C+ 。在计算要求相同的情况下,使用MATLAB 的编程工作量会大大减少。函数所能解决的问题其大致 包括矩阵运算和线性方程组的求解、微分方程及偏微分 方程组的求解、符号运算、傅立

7、叶变换和数据的统计分 析、工程中的优化问题、稀疏矩阵运算、复数的各种运 算、三角函数和其他初等数学运算、多维数组操作以及 建模动态仿真等。 n(4)出色的图形处理功能)出色的图形处理功能 MATLAB自产生之日起就具有方便的数据可视化功能,以 将向量和矩阵用图形表现出来,并且可以对图形进行标注 和打印。高层次的作图包括二维和三维的可视化、图象处 理、动画和表达式作图。可用于科学计算和工程绘图。新 版本的MATLAB对整个图形处理功能作了很大的改进和完 善,使它不仅在一般数据可视化软件都具有的功能(例如 二维曲线和三维曲面的绘制和处理等)方面更加完善,而 且对于一些其他软件所没有的功能(例如图形

8、的光照处理、 色度处理以及四维数据的表现等),MATLAB同样表现了 出色的处理能力。同时对一些特殊的可视化要求,例如图 形对话等,MATLAB也有相应的功能函数,保证了用户不 同层次的要求。另外新版本的MATLAB还着重在图形用户 界面(GUI)的制作上作了很大的改善,对这方面有特殊 要求的用户也可以得到满足。 n(5)应用广泛的模块集合工具箱)应用广泛的模块集合工具箱 MATLAB对许多专门的领域都开发了功能强大的模块集和 工具箱。一般来说,它们都是由特定领域的专家开发的, 用户可以直接使用工具箱学习、应用和评估不同的方法而 不需要自己编写代码。目前,MATLAB已经把工具箱延伸 到了科学

9、研究和工程应用的诸多领域,诸如数据采集、数 据库接口、概率统计、样条拟合、优化算法、偏微分方程 求解、神经网络、小波分析、信号处理、图像处理、系统 辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、 模糊逻辑、金融分析、地图工具、非线性控制设计、实时 快速原型及半物理仿真、嵌入式系统开发、定点仿真、 DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家 族中有了自己的一席之地。 n(6)实用的程序接口和发布平台)实用的程序接口和发布平台 新版本的MATLAB可以利用MATLAB编译器和C/C+数学 库和图形库,将自己的MATLAB程序自动转换为独立于 MATLAB运行的C和C+代码。

10、允许用户编写可以和 MATLAB进行交互的C或C+语言程序。另外,MATLAB 网页服务程序还容许在Web应用中使用自己的MATLAB 数学和图形程序。 MATLAB的一个重要特色就是具有一套程序扩展系统和一 组称之为工具箱的特殊应用子程序。工具箱是MATLAB 函数的子程序库,每一个工具箱都是为某一类学科专业 和应用而定制的,主要包括信号处理、控制系统、神经 网络、模糊逻辑、小波分析和系统仿真等方面的应用。 n(7)应用软件开发(包括用户界面)应用软件开发(包括用户界面) 在开发环境中,使用户更方便地控制多个文件和 图形窗口;在编程方面支持了函数嵌套,有条 件中断等;在图形化方面,有了更强大

11、的图形 标注和处理功能,包括连接注释等;在输入输 出方面,可以直接向Excel等进行连接。 总结 首创者: Cleve Moler博士(数值线性代数领域) 公 司: Mathworks公司 描述:科学计算软件,具有如下特点: 1)以矩阵的形式处理数据; 2)高性能的数值计算+可视化; 3)提供了大量的内置函数; 4)应用于科学计算、控制系统、信息处理等领域的分析、 仿真和设计工作中; 5)开放式结构,容易扩展。 MATLAB产品可以用来进行如下工作: * 数值分析; * 数值和符号计算; * 工程与科学绘图; * 控制系统的设计与仿真; * 数字图像处理; * 数字信号处理; * 通讯系统设计

12、与仿真; * 财务与金融工程。 MATLAB的产品体系的产品体系 MATLAB产品由若干个模块组成,不同的模块完成 不同的功能,其中有 * MATLAB(核心结构,编程基础); * MATLAB Toolboxes(针对应用领域); * MATLAB Compiler(应用程序接口); * Simulink(控制系统仿真); * 其他 安装MATLAB后,在安装目录下将包含如下文件夹。 MATLAB的目录结构 续表 MATLAB的桌面工作环境的桌面工作环境 1)历史命令窗口(Command History) 2)命令行窗口(Command Window) 3)当前目录浏览器(Current D

13、irectory Browser)、 4)工作空间浏览器(Workspace Browser)、 5)数组编辑器(Array Editor)、 6)M文件编辑器/调试器(Editor/Debugger)、 7)超文本帮助浏览器(Help Navigator/Browser), 图 MATLAB默认的用户界面 命令窗口 命令窗口是MATLAB的主要交互窗口, 用于输入命令并显示除图形以外的所有执 行结果。 MATLAB命令窗口中的“”为运算提示 符,表MATLAB处于准备状态。 当在提示符后输入一段程序或一段运算式 后【Enter】键,MATLAB会给出计算结 果,并再次进入准备状态(所得结果将

14、被 保存在工作空间窗口中)。 单击命令窗口右上角的“ ”按钮,可以 使 命令窗口脱离主窗口而成为一个独立的窗 口。 历史命令窗口 主要用于记录所有执行过的命令; 保留自安装后所有使用过命令的历史记 录,并标明使用时间; 可以通过用鼠标双击某一历史命令来重新 执行该命令; 可以成为一个独立的窗口。 通过上下文菜单,可删除或粘贴历史记录; 可为选中的表达式或命令创建一个M文件; 可为表达式或命令创建快捷按钮。 当前工作目录窗口 当前工作目录是指MATLAB运行文件时的目录。 只有在当前工作目录或搜索路径下的文件、函数 可以被运行或调用。如下图所示。 工作空间窗口 工作空间窗口将显示目前内存中所有的

15、 MATLAB变量的变量名、数据结构、字节数以及类 型等信息,如下图所示。 MATLAB的通用命令 1常用命令 2输入内容的编辑 3标点 4搜索路径与扩展 通用命令是MATLAB中经常使用的一组 命令,这些命令可以用来管理目录、函数、 变量、工作空间、文件和窗口等。下面对 这些命令进行介绍。 1常用命令 常用命令的功能 2输入内容的编辑 在命令窗口中,MATLAB提供了控制光标位置 和进行简单编辑的键盘按键,部分常用的键盘按 键及其功能如下表所示。 3标点 在MATLAB中,一些标点符号被赋予了 特殊的功能,如下表所示。 4搜索路径与扩展 用户自己书写的函数有可能并没有保 存在搜索路径下。要解

16、决这个问题,只需 把程序所在的目录扩展成MATLAB的搜索 路径即可。 搜索路径 问题:调用一个函数,本质上是调用相关的Matlab 文件,Matlab是如何搜索到相对应的文件呢?-搜索路径 机制。 当执行某个MATLAB指令时,系统将按照以下的顺 序搜索该指令: * 首先判断该指令是否为变量。 * 然后判断该指令是否为内建的函数。 * 接着在当前的路径下搜索是否存在该指令文件。 * 最后从搜索路径中依次搜索该文件直到找到第一个 符合要求的M文件为止。 * 若上述的搜索都没有找到该指令,则报告错误信息。 MATLAB按照上面的顺序来判断指令的执行,并且 仅执行第一个符合条件的指令。 (1)查看

17、MATLAB的搜索路径 选择MATLAB主窗口中的【File】|【Set Path】菜单,进入【设置搜索路径】对话框。 通过该对话框可为MATLAB添加或删除搜索 路径。 在命令窗口中输入path或genpath可得 到MATLAB的所有搜索路径,具体代码如下: (2)设置MATLAB的搜索路径 方法一:在MATLAB命令窗口中输入 editpath或pathtool命令或通过【File】 |【Set Path】菜单,进入 “设置搜索路 径”对话框,通过该对话框编辑搜索路 径。 方法二:在命令窗口执行“path(path, D:Study )”,然后通过 “设置搜索路 径”对话框查看“D:St

18、udy”是否在搜索路 径中。 方法三:在命令窗口执行“addpath D:Study- end”,将新的目录加到整个 搜索路径的末尾。如果将end改为 begin,可以将新的目录加到整个搜索路 径的开始。 1.5 MATLAB的帮助系统 1命令窗口查询帮助系统 2联机帮助系统 3联机演示系统 MATLAB为用户提供了非常完善的帮助 系统。下面分别介绍MATLAB的三类帮助系 统。 1命令窗口查询帮助系统 常见的帮助命令 2联机帮助系统 用户可以通过下述方法进入MATLAB的 联机帮助系统。 直接单击MATLAB主窗口中的“ ”按钮; 选中Help菜单的前4项中的任意一项; 在命令窗口中执行he

19、lpwin、helpdesk 或doc。 3联机演示系统 可以通过以下方式打开联机演示统。 选择MATLAB主窗口菜单的【Help】| 【Demos】选项; 在命令窗口输入demos; 直接在帮助页面上选择Demos页。 020406080100 -40 -20 0 20 40 Magnitude (dB) Frequency (Hertz) 00.20.40.60.81 -1 -0.5 0 0.5 1 Waveform Time (Seconds) Click and drag waveform to change fundamental frequency and amplitude 1.

20、6 MATLAB示例 下面以一个简单的例子展示如何使 用MATLAB进行简单的数值计算。 MATLAB语言基础 n介绍MATLAB语言的常量与变量及其使用, MATLAB语言的运算符,MATLAB语言的 数据类型与基本语句结构。与读者所熟 悉的其它计算机语言一样,这些内容是 需要熟练掌握的。 MATLAB语言的常量 MATLAB允许使用各种特殊变量和常量。实 际编程时,这些特殊变量和常量可以直接使 用。表2.1g列出了常用的一些量。更详细的 特殊变量、常量及特定函数在matlab/elmat 目录下,并提供有详尽的帮助文档。 2.1.1MATLAB语言的常量 表表2.12.1MATLABMAT

21、LAB的部分特殊变量和常量的部分特殊变量和常量 特殊变量和常量特殊变量和常量说明说明 ans如果没指定输出到一个变量,系统自动创建如果没指定输出到一个变量,系统自动创建ansans,存储输出结果,存储输出结果 eps 机器的浮点运算误差限,即相对精度机器的浮点运算误差限,即相对精度 pi,3.1415926535897.,返回圆周率的近似值,返回圆周率的近似值 i, j 基础的虚数单元基础的虚数单元 inf返回返回IEEEIEEE算法的正无穷大量,如算法的正无穷大量,如n/0n/0即产生即产生inf(inf(其中其中n n为实数为实数) ) NaNNaNNot-a-Number,返回,返回IE

22、EEIEEE算法的非数值,如算法的非数值,如 0/0 或或 inf/inf,关于,关于NaNNaN的算的算 术运算等术运算等 computer识别识别MATLABMATLAB运行的计算机类型运行的计算机类型 versionMATLAB 版本版本 intmax所用机器能表示的最大整数所用机器能表示的最大整数 intmin所用机器能表示的最小整数所用机器能表示的最小整数 realmax所用机器能表示的最大正浮点数所用机器能表示的最大正浮点数 realmin所用机器能表示的最小正浮点数所用机器能表示的最小正浮点数 MATLAB语言的变量语言的变量 MATLAB变量不需申明和指定类型即可使用。 变量名

23、由一个英文字母引导,后可接英文 字母、数字和下划线3种字符。最长不超 过n个字符, n可由namelengthmax查看。 MATLAB语言的变量语言的变量 如超过则只前n个字符有效。需要注意的 是MATLAB变量名区分大小写(case sensitive)。依此,A and a 就应该是2个 不同的变量名。 变量的使用 clear%删除工作区中所有定义过的变量删除工作区中所有定义过的变量 whos%查看当前工作区内变量信息,无显示表示没查看当前工作区内变量信息,无显示表示没 有定义的变量有定义的变量 xy=1; yx=2; %对变量赋值对变量赋值 xy%查看变量查看变量xy的当前数值的当前数

24、值 xy = 1 whos Name Size Bytes Class xy 1x1 8 double array yx 1x1 8 double array Grand total is 2 elements using 16 bytes clear xy yx%删除变量删除变量xy及及yx whos xy%这时变量这时变量xy已经不存在了已经不存在了 ? Undefined function or variable xy. 2.2 MATLAB语言的运算符语言的运算符 n类似于其它语言如C语言,MATLAB也有不 同运算符。以下各表分类列出这些运算符。 有关其具体使用在下章中介绍。 2.2

25、.1 算术运算符算术运算符 n算术运算符用来处理2个运算元之间的数学 运算。算术运算符及其意义如表2.2所列。 算术运算符算术运算符 上表中点运算是针对同阶矩阵中逐个元素 进行的算术运算。但由于矩阵和数组的 加减操作一致,所以数组的加减运算不 必使用点运算。 关系运算符关系运算符 关系运算符用来比较2个运算元之间的关系。关系运 算符及其意义如表2.3所列。 表2.3 关系运算符及其意义 逻辑运算符逻辑运算符 逻辑运算符及相关函数是处理2个运算元之 间的逻辑关系。逻辑运算符及其意义如表 2.4所列。 表2.4 逻辑运算符及其意义 还有一些相关逻辑函数如xor(),all(),any() 等。使用

26、起来十分方便。 数据类型概述数据类型概述 n表2.5列出MATLAB语言的数据类型。这 些数据类型都是数组格式的。为保证较 高的计算精度,MATLAB中最常用的数 据类型是双精度浮点型double和字符类 型char。此外,MATLAB提供的符号运算 符还支持符号变量的使用,符号数据类 型在符号运算中有重要的意义。 数据类型概述数据类型概述 表2.5 MATLAB语言的数据类型 基本语句结构基本语句结构 MATLAB有2种基本语句结构为 1.直接赋值语句 2.调用函数语句 直接赋值语句直接赋值语句 变量表达式 %显示运行结果 变量表达式; %不显示运行结果 表达式 %结果赋给常量ans 以下示

27、例演示了这几种赋值方法。 A=1 2;3 4; B=5 6;7 8 B = 5 6 7 8 A+B ans = 6 8 10 12 直接赋值语句直接赋值语句 n值得注意的是,表达式一般需要添加 “;”,以避免显示中间结果。但有时显 示中间结果对程序调试很有帮助,这时可 以尝试将其去掉。 调用函数语句调用函数语句 函数的一般调用格式为: 返回变量列表函数名(输入变量列表) 例求取学生平均成绩,即是调用了函数mean( )。 在调用函数时,很多情况下,同一函数给出了若 干种调用方法。如函数mean( ),查阅其帮助文 档,有如下语法: M = mean(A) M = mean(A,dim) 这就要

28、求在使用时根据需要调用。 基本数学函数 类型函 数含 义 三角函数三角函数sin(x)正弦值正弦值 asin(x)反正弦值反正弦值 cos(x)余弦值余弦值 acos(x)反余弦值反余弦值 tan(x)正切正切 指数函数指数函数exp(x)指数运算指数运算 log(x)自然对数自然对数 sqrt(x)求平方根求平方根 复数函数复数函数abs(x)求绝对值求绝对值 imag(x)取出复数的虚部取出复数的虚部 real(x)取出复数的实部取出复数的实部 conj(x)复数共轭复数共轭 数论函数数论函数round(x)四舍五入四舍五入 mod(x,y)求余数求余数 lcm(x,y)整数整数x和和y的

29、最小公倍数的最小公倍数 gcd(x,y)整数整数x和和y的最大公约数的最大公约数 数组、矩阵的构造与运算 在MATLAB中,所有的数据均以一维、二维、 三维或高维矩阵的形式存储,每个矩阵的单元可 以是数值类型、逻辑类型、字符类型或者其他任 何数据类型。 对于标量,可以用11矩阵来表示; 对于一组n个数据,可以用1n矩阵来表 示; 对于多维数组,可以用多维矩阵来表示。 在MATLAB中,用命令whos来显示数据的类型、 存储空间等信息。 1简单矩阵构造 2特殊矩阵构造 3向量构造 最简单的方法是采用矩阵构造符“”。 构造1n矩阵(行向量)时,可以将各元 素依次放入矩阵构造符内,并且以空格 或者逗

30、号分隔;构造mn矩阵时,每行如 上处理,并且行与行之间用分号分隔。 在MATLAB中还提供一些函数用来构造 特殊矩阵,这些函数如下表所示。 续表 最简单的方法是采用向量构造符“:”, 其常用的用法如下。 (1)a:b 返回以a为起点,以1为步长,且所 有取值在a与b之间的向量。 (2)a:s:b 返回以a为起点,以s为步长,且 所有取值在a与b之间的向量。 1矩阵的合并 2矩阵行列的删除 矩阵的合并就是把两个或者两个以上的矩阵连 接成一个新矩阵。矩阵构造符 可用于构造矩阵, 并可以作为一个矩阵合并操作符。 表达式C=A B在水平方向合并矩阵A和B; 表达式C=A;B在竖直方向合并矩阵A和B。

31、具有相同行数的两个矩阵,合并为一个新矩阵 不具有相同行数的两个矩阵,不允许合并为一个新矩阵 除了矩阵合并符“”外,还可以使用矩 阵合并函数。矩阵合并函数的描述和基本 调用格式如下表所示。 要删除矩阵的某一行或者是某一列, 只需将该行或者该列赋予一个空矩阵即 可。 1访问单个元素 2线性引用元素 3访问多个元素 本小节将介绍通过矩阵下标来存取元 素值的方法,包括访问单个元素、线性引 用元素和访问多个元素等。 矩阵下标与子矩阵提取矩阵下标与子矩阵提取 nA(m, n)提取第m行,第n列元素 nA(:, n)提取第n列元素 nA(m, :)提取第m行元素 nA(m1:m2, n1:n2)提取第m1行

32、到第m2行和第 n1列到第n2列的所有元素 nA(m:end, n)提取从第m行到最末行和第n列的 子块 nA(:) 得到一个长列矢量,该矢量的元 素按矩阵的列进行排列 对于矩阵A,线性引用元素的格式为 A(k)。通常这样的引用用于行向量或列 向量,但也可用于二维矩阵。 MATLAB按列优先排列的一个长列向量格 式(线性引用元素)来存储矩阵元素。 操作符“:”可以用来表示矩阵的多个 元素。若A是二维矩阵,其主要用法如下: A(:,:) 返回矩阵A的所有元素。 A(i,:) 返回矩阵A第i行的所有元素。 A(i,k1:k2) 返回矩阵A第i行的自k1到k2 列的所有元素。 A(:,j) 返回矩阵

33、A第j列的所有元素。 A(k1:k2,j) 返回矩阵A第j列的自k1到k2 行的 所有元素。 若A是多维矩阵,也可以通过类似的方 法实现对其访问。 1矩阵尺寸信息 2元素的数据类型 3矩阵的数据结构 本小节介绍如何获取矩阵的信息,包 括矩阵的尺寸、元素的数据类型和矩阵的 数据结构等。 矩阵尺寸函数可以得到矩阵的形状和大 小信息,这些函数如下表所示。 查询元素数据类型信息的部分函数如下 表所示。 判断矩阵是否为某种指定数据结构的 函数如下表所示。 改变矩阵结构的函数表 1稀疏矩阵的创建 2查看稀疏矩阵 3稀疏矩阵的运算规则 在MATLAB中,可以用满矩阵存储方 式和稀疏矩阵存储方式来存储矩阵。

34、若一个矩阵只有少数的元素非零,称为稀 疏矩阵。稀疏矩阵非零元素及其对应的下 标来表示。 用户可以创建双精度、复数和逻辑等类型 的稀疏矩阵。 在MATLAB中,用函数sparse()实现满矩 阵到稀疏矩阵的转换。 在MATLAB中用函数full()实现稀疏矩阵 到满矩阵的转换。 在MATLAB中,还可以用函数sparse() 直接创建稀疏矩阵,其具体用法如下。 S = sparse(i,j,s,m,n),其中,i和j分别 是稀疏矩阵非零元素的行和列下标,s为相 应的非零元素的值,m和n分别是矩阵的行 数和列数。 MATLAB还提供一些函数用于创建特殊稀 疏矩阵,这些函数如下表所示。 MATLAB

35、提供一些函数用于查看稀疏矩 阵的信息,如下表所示。 下面的例子都是基于MATLAB自带的稀 疏矩阵west0479。 在MATLAB中的各种命令和函数都可以用 于稀疏矩阵的运算,并且遵循如下的一些 约定。 (1)把矩阵变为标量或者定长向量的函数总 是给出满矩阵; (2)对于标量或者定长向量变换到矩阵的函 数,如函数zeros()、ones()、 eye()、rand()等总是给出满矩阵; (3)从矩阵到矩阵的变换函数将以原矩阵的 形式出现; (4)在参与矩阵扩展的子矩阵(如 A B;C D)中,只要有一个是稀疏矩阵,那 么所得的结果也是稀疏矩阵; (5)在矩阵引用中,将仍以原矩阵形式给出 结果

36、。 2.3.1 算数运算符 2.3.2 关系运算符 2.3.3 逻辑运算符 2.3.4 运算优先级 在MATLAB中提供了丰富的运算符,包 括算数、关系和逻辑等3种运算符。 在MATLAB中,算数运算符的用法和功 能如下表所示。 续表 补充说明AB的用法如下: 当A和B都为矩阵时,此运算无定义; 当A和B都是标量时,表示标量A的B次 幂; 当A是标量且B为矩阵时,表示标量A的 B中各元素次幂; 当A为方阵且B为正整数时,表示矩阵A 的B次乘积; 当A为方阵且B为负整数时,表示矩阵A逆 的负B次乘积; 当A为可对角化的方阵且B为非整数时,有 如下表达式: MATLAB中关系运算符的用法和功能如

37、下表所示。 值得注意的是,关系运算符只针对两个相同长 度的矩阵,或其中之一是标量的情况进行运算。 对于前者,是指两个矩阵的对应元素进行比 较,返回具有相同长度的矩阵; 对于后者,是指这个标量与另一个矩阵的每元 素进行运算。 关系运算C=f(A,B)的运算结果只有0和1两种情 况,其中,函数f()表示关系运算符,0表示不满足 条件,1表示满足条件。 MATLAB提供元素方式和比特方式等逻辑运算 符。元素方式逻辑运算符的用法和功能如下表所 示,其中例子采用如下矩阵: 元素方式逻辑运算符 5 6 0 8; 9 0 11 12; 0 14 15 16; det(X) ans = -5464 2求矩阵的秩 X=1, 2, 3; 2, 3 -5; 4 7 1; rank(X) ans = 2 3求逆矩阵 X=1 2 3 0; 5 6 0 8; 9 0 11 12; 0 14 15 16; Y=inv(X) Y = 0.2299 0.0908 0.0351 -0.0717 0.1940 0.0798 -0.0659 0.0095 0.1274 -0.0835 0.0322 0.0176 -0.2892 0.0084 0.0275 0.0377 Y*X%矩阵与其逆阵相乘结果是单位矩阵 ans = 1.0000 0 0 0 0 1.0000 0 0 0

温馨提示

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

评论

0/150

提交评论