当前位置:
文档之家› 第二章 MATLAB的数值运算
第二章 MATLAB的数值运算
2.3.3 逻辑运算 MATLAB提供了3种逻辑运算符:&(与and)、 |(或or)和~(非not)。
逻辑运算的运算法则为: (1) 在逻辑运算中,确认非零元素为真,用1表示,零 元素为假,用0表示。 (2) 设参与逻辑运算的是两个标量a和b,那么,a&b a,b全为非零时,运算结果为1,否则为0。a|b a,b 中只要有一个非零,运算结果为1。~a 当a是零时, 运算结果为1;当a非零时,运算结果为0。 (3) 若参与逻辑运算的是两个同维矩阵,那么运算将 对矩阵相同位置上的元素按标量规则逐个进行。最 终运算结果是一个与原矩阵同维的矩阵,其元素由 1或0组成。
clear命令用于删除MATLAB工作空间中的变量。 who和whos这两个命令用于显示在MATLAB 工作空间中已经驻留的变量名清单。who命 令只显示出驻留变量的名称,whos在给出变 量名的同时,还给出它们的大小、所占字节 数及数据类型等信息。
2.1.3 MATLAB常用数学函数
函数使用说明: (1) 三角函数以弧度为单位计算。 (2) abs函数可以求实数的绝对值、复数的模、 字符串的ASCII码值。 (3) 用于取整的函数有fix、floor、ceil、 round,要注意它们的区别。
第二章 MATLAB的数值运算
2.1 变量与数据操作 2.2 MATLAB矩阵和数组 2.3 MATLAB的运算 2.4 矩阵分析 2.5 字符串
§2.1 变量与数据操作
Байду номын сангаас
标量:是指1×1的矩阵,即为只含一个数的矩阵。 向量:是指1×n或n×1的矩阵,即只有一行或者一 列的矩阵。 矩阵:是一个矩形的数组,即二维数组,其中向量 和标量都是矩阵的特例,0×0矩阵为空矩阵([ ])。 数组:是指n维的数组,为矩阵的延伸,其中矩阵 和向量都是数组的特例。
2.2.3 矩阵的基本操作 1.矩阵元素提取与修改 A、使用全下标索引 T(i,j)-i和j分别表示索引或提取元素在矩阵 中的行数和列数 B、采用矩阵元素的序号 矩阵元素的序号就是相应元素在内存中的排列 顺序。在MATLAB中,矩阵元素按列存储, 先第一列,再第二列,依次类推。
2.矩阵拆分 ① A(:,j)表示取A矩阵的第j列全部元素;A(i,:)表 示A矩阵第i行的全部元素;A(i,j)表示取A矩阵 第i行、第j列的元素。 ② A(i:i+m,:)表示取A矩阵第i~i+m行的全部元 素;A(:,k:k+m)表示取A矩阵第k~k+m列的全 部元素,A(i:i+m,k:k+m)表示取A矩阵第i~ i+m行内,并在第k~k+m列中的所有元素 。
2.4.2 矩阵的转置与旋转 1.矩阵的转置 转置运算符是单撇号(‘)。 2.矩阵的旋转 利用函数rot90(A,k)将矩阵A旋转90º 的k倍,当k为1时 可省略。 3.矩阵的左右翻转 对矩阵实施左右翻转是将原矩阵的第一列和最后一列 调换,第二列和倒数第二列调换,…,依次类推。 MATLAB对矩阵A实施左右翻转的函数是fliplr(A)。 4.矩阵的上下翻转 MATLAB对矩阵A实施上下翻转的函数是flipud(A)。
2.1.1变量与赋值 1、变量的命名规则 A.变量名必须是不含空格的单个单词; B.变量名区分大小写; C. 变量名最多不超过63个字符; D.变量名必须以字母打头,之后可以是任意 字母、数字或下划线,变量名中不允许使用 标点符号。
2 特殊变量
特殊变量 ans pi eps flops inf NaN或nan i或 j nargin nargout realmin realmax 取值 运算结果的默认变量名 圆周率π 计算机的最小数 浮点运算数 无穷大,如1/0 非数,如0/0、∞/∞、0×∞ i=j= 函数的输入变量数目 函数的输出变量数目 最小的可用正实数 最大的可用正实数
2.三角阵 (1) 上三角矩阵 求矩阵A的上三角阵的MATLAB函数是triu(A)。 triu(A)函数也有另一种形式triu(A,k),其功能是求矩阵 A的第k条对角线以上的元素。例如,提取矩阵A的 第2条对角线以上的元素,形成新的矩阵B。 (2) 下三角矩阵 在MATLAB中,提取矩阵A的下三角矩阵的函数是 tril(A)和tril(A,k),其用法与提取上三角矩阵的函数 triu(A)和triu(A,k)完全相同。
4.利用M文件中的函数生成矩阵 对于比较大且比较复杂的矩阵,可以为它专门 建立一个M文件。M文件是一种包含MATLAB 代码的文本文件,这种文件的扩展名是“.m”。 它包含的内容就是在MATLAB命令行键入矩 阵生成的命令。 举例。
2.2.2 数组、向量的建立与保存 1、一维、二维数组的建立 在MATLAB中数组可以看成是行向量,即只 有一列的矩阵。前面介绍的所有矩阵的建立 方法对于一、二维数组同样适用,这里不再 过多介绍
§2.3 MATLAB运算
2.3.1算术运算 1.矩阵运算 在MATLAB的系统中提供了一些矩阵运算符。 +(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘 方)
注意: A、矩阵的加法和减法运算中,参与运算的矩阵维数 必须相同 B、矩阵乘法运算中乘号左边的矩阵列数必须和乘号 右边的矩阵行数必须相同 C、矩阵除法中,一定要注意区分矩阵的左除(\)和右 除(/)的区别。如果A矩阵是非奇异方阵,则A\B和 B/A运算可以实现 。A\B等效于A的逆左乘B矩阵, 也就是inv(A)*B,而B/A等效于A矩阵的逆右乘B矩 阵,也就是B*inv(A)。 对于矩阵运算,一般A\B≠B/A。 D、对于矩阵的乘方运算A^x,要求A为方阵,x为标 量。
举例。
§2.2 MATLAB矩阵和数组
2.2.1矩阵的创建与保存 矩阵的创建可以通过一下几种形式创建 以直接形式列出元素形式输入 通过语句和函数产生 从外部文件导入 建立在M文件中
1.直接输入法 最简单的建立矩阵的方法是从键盘直接输 入矩阵的元素。具体方法如下:将矩阵的元 素用方括号括起来,按矩阵行的顺序输入各 元素,同一行的各元素之间用空格或逗号分 隔,不同行的元素之间用分号分隔
2.数组运算 数组的运算符为 +(加)、-(减)、.*(乘)、./(右除)、.\(左 除)、.^(乘方) (1) 数组对标量的加、减、乘、除运算就是对数 组的每个元素分别施加运算。 (2)数组对数组的运算 在MATLAB中,当两个数组具有相同的维数时, 加减乘除运算是元素对元素的方式进行的。
注意 A、数组的加法、减法和矩阵的运算符是相同 的都是“+”和“-”。 B、数组的乘除运算和矩阵是完全不同的,运 算符为(.*)和点除(./)。运算符的点号不能少, 否则将不按数组的运算规则进行。 C、注意区分数组的左除和右除。它们的关系 如下:a./b=b.\a D、数组的幂运算符号为“.^”,用来表示数组 元素对元素的幂运算
(4) 若参与逻辑运算的一个是标量,一个是矩阵,那 么运算将在标量与矩阵中的每个元素之间按标量规 则逐个进行。最终运算结果是一个与矩阵同维的矩 阵,其元素由1或0组成。 (5) 逻辑非是单目运算符,也服从矩阵运算规则。 例 产生5阶随机方阵A,其元素为[10,90]区间的随机 整数,然后判断A的元素是否能被3整除。
几种运算的优先级比较 在算术、关系、逻辑运算中,算术运算优先级最高, 逻辑运算优先级最低。 '(矩阵转置)、^(矩阵幂)和.'(数组转置)、.^(数组幂) ~(逻辑非) *(乘)、/(左除)、\(右除)和.*(点乘)、./(点左 除)、.\(点右除) +、-(加减) : (冒号) <、<=、>、>=、~= &(逻辑与) |(逻辑或)
关系运算的运算法则 (1) 当两个比较量是标量时,直接比较两数的大小。 若关系成立,关系表达式结果为1,否则为0。 (2) 当参与比较的量是两个维数相同的矩阵时,比较 是对两矩阵相同位置的元素按标量关系运算规则逐 个进行,并给出元素比较结果。最终的关系运算的 结果是一个维数与原矩阵相同的矩阵,它的元素由 0或1组成。 (3) 当参与比较的一个是标量,而另一个是矩阵时, 则把标量与矩阵的每一个元素按标量关系运算规则 逐个比较,并给出元素比较结果。最终的关系运算 的结果是一个维数与原矩阵相同的矩阵,它的元素 由0或1组成。
3.赋值语句 (1) 变量=表达式 (2) 表达式 其中表达式是用运算符将有关运算量连接起来 的式子,其结果是一个矩阵。
例 建立变量和赋值 x=1+2i; y=3-sqrt(17); 其中pi和i都是MATLAB预先定义的变量,分 别代表代表圆周率π和虚数单位。
2.1.2 内存变量的管理 MATLAB工作空间窗口专门用于内存变量的管 理。在工作空间窗口中可以显示所有内存变 量的属性。当选中某些变量后,再单击 Delete按钮,就能删除这些变量。当选中某 些变量后,再单击Open按钮,将进入变量编 辑器。通过变量编辑器可以直接观察变量中 的具体元素,也可修改变量中的具体元素。
§2.4 矩阵分析
2.4.1 对角阵与三角阵 1.对角阵 (1) 提取矩阵的对角线元素 设A为m×n矩阵,diag(A)函数用于提取矩阵A主对角 线元素,产生一个具有min(m,n)个元素的列向量。 diag(A)函数还有一种形式diag(A,k),其功能是提取第 k条对角线的元素。
(2) 构造对角矩阵 设V为具有m个元素的向量,diag(V)将产生一 个m×m对角矩阵,其主对角线元素即为向量 V的元素。
(2) 向量的叉积运算 在MATLAB中,向量的叉积由函数“cross”实 现。cross的调用格式如下: C=cross(A,B)表示返回向量A与B的叉积,即 C=A×B。需要说明的是,向量A与B向量必 须是3个元素的向量。
2.3.2 关系运算 MATLAB提供了6种关系运算符:<(小于Lt)、 <=(小于或等于Le)、>(大于Gt)、>=(大于或 等于Ge)、==(等于eq)、~=(不等于Ne)。