1.6 MATLAB的矩阵运算
矩阵运算是MATLAB最重要的运算,因为MATLAB的运算大部分都建立在矩阵运算的基础上。MATLAB有三种矩阵运算类型:矩阵的代数运算、矩阵的关系运算和矩阵的逻辑运算。
根据不同的应用目的,矩阵的代数运算又包含两种重要的运算形式:按矩阵整体进行运算和按矩阵单个元素进行运算的元素群运算。
1.6.1 矩阵的代数运算
1.矩阵的算术运算
矩阵的算术运算的书写格式与普通算术运算的书写格式相同,包括优先顺序规则,但其乘法和除法的定义、方法与标量截然不同,读者应在矩阵的运算意义上加以理解和应用。表1-6是MATLAB矩阵的算术运算符及其说明。
表1-6 MATLAB矩阵的算术运算符及其说明
【例1-10】两矩阵的算术运算。
注意:
(1)如果A、B两矩阵进行加、减运算,则A、B的维数必须相同,否则系统会提示出错。
(2)如果A、B两矩阵进行乘运算,则前一矩阵的列数必须等于后一矩阵的行数(内维数相等)。
(3)如果A、B两矩阵进行右除运算,则两矩阵的列数必须相等(实际上,)。
(4)如果A、B两矩阵进行左除运算,则两矩阵的行数必须相等(实际上,)。
2.矩阵的运算函数
MATLAB系统函数库提供了一些常用的矩阵运算函数,熟悉这些对读者非常有用。例如,矩阵的加、减、乘、除等运算对参与运算的矩阵都有各自的矩阵维数匹配要求。表1-7列出了部分常用的矩阵运算函数。
表1-7 部分常用的矩阵运算函数
【例1-11】常用矩阵运算函数实例。
3.矩阵的元素群运算
元素群运算是指矩阵中的所有元素均按单个元素进行运算。为了与以矩阵作为整体的运算符相区别,元素群运算约定:在矩阵运算符“*”“/”“\”“^”前加一个点符号“.”,以表示在进行元素群运算,而非矩阵运算。元素群的加、减运算的效果与矩阵的加、减运算的效果是一致的,运算符也相同。表1-8为矩阵的元素群运算符及其说明。
表1-8 矩阵的元素群运算符及其说明
【例1-12】实现矩阵元素的群运算。
4.元素群的函数
MATLAB提供了几乎所有的初等函数,包括三角函数、对数函数、指数函数和复数运算函数等。大部分的MATLAB函数运算都是分别作用于函数变量(矩阵)的每个元素,意味着这些函数的自变量可以是任意阶的矩阵。表1-9列出了MATLAB常用初等函数及其说明。
表1-9 MATLAB常用初等函数及其说明
续表
【例1-13】已知,求的余弦值、平方根及自然对数函数。
1.6.2 矩阵的关系运算
关系运算用于比较两个操作数的大小,返回值为逻辑型变量。在MATLAB中,关系运算符如表1-10所示。当两个操作数都为数组或矩阵时,这两个操作数的维数必须相同,否则会显示出错信息。
表1-10 关系运算符
注意:对于浮点数,在比较是否相等时需要特别注意,因为浮点数在存储时存在相对误差。在程序中,最好不要直接比较两个浮点数是否相等,而应看两个浮点数的差是否小于某个特别小的数,以此判断两个浮点数是否相等。
【例1-14】实现给定矩阵的关系运算。
运行程序,输出如下:
注意:关系运算比算术运算具有更高的优先权。
1.6.3 矩阵的逻辑运算
在MATLAB中,逻辑运算分为三类,分别为逐个元素的逻辑运算、快速逻辑运算和逐位逻辑运算。其中,逐个元素的逻辑运算有四种,分别为逻辑与(&)、逻辑或(|)、逻辑非(~)和逻辑异或,如表1-11所示。逻辑与和逻辑或是双目运算符,逻辑非为单目运算符。需要注意的是,在进行两个数组或矩阵的逻辑与和逻辑或运算时,两者必须具有相同的维数。
表1-11 逐个元素的逻辑运算
【例1-15】对创建的矩阵进行逻辑运算。