![MATLAB R2020a智能算法及实例分析](https://wfqqreader-1252317822.image.myqcloud.com/cover/824/38601824/b_38601824.jpg)
1.6 MATLAB的矩阵运算
矩阵运算是MATLAB最重要的运算,因为MATLAB的运算大部分都建立在矩阵运算的基础上。MATLAB有三种矩阵运算类型:矩阵的代数运算、矩阵的关系运算和矩阵的逻辑运算。
根据不同的应用目的,矩阵的代数运算又包含两种重要的运算形式:按矩阵整体进行运算和按矩阵单个元素进行运算的元素群运算。
1.6.1 矩阵的代数运算
1.矩阵的算术运算
矩阵的算术运算的书写格式与普通算术运算的书写格式相同,包括优先顺序规则,但其乘法和除法的定义、方法与标量截然不同,读者应在矩阵的运算意义上加以理解和应用。表1-6是MATLAB矩阵的算术运算符及其说明。
表1-6 MATLAB矩阵的算术运算符及其说明
![img](https://epubservercos.yuewen.com/89B371/20308228401712906/epubprivate/OEBPS/Images/txt001_39.jpg?sign=1738941984-kPIgv2ceee7fY3u1rD92FT14kANYCBj0-0-25e63839b0eac1f0877d5ffb858bdf93)
【例1-10】两矩阵的算术运算。
![](https://epubservercos.yuewen.com/89B371/20308228401712906/epubprivate/OEBPS/Images/txt001_40.jpg?sign=1738941984-pZVn6tEFFvvweu4YrxyEFZWrgbSd61R6-0-667828043166c0a6a1706b2f2d29866f)
![](https://epubservercos.yuewen.com/89B371/20308228401712906/epubprivate/OEBPS/Images/txt001_41.jpg?sign=1738941984-oHeZewpunQE6wfCRCU360OOJo9UAigzK-0-8f97f915ed20f1c3746c61c7f2b3a5e3)
注意:
(1)如果A、B两矩阵进行加、减运算,则A、B的维数必须相同,否则系统会提示出错。
(2)如果A、B两矩阵进行乘运算,则前一矩阵的列数必须等于后一矩阵的行数(内维数相等)。
(3)如果A、B两矩阵进行右除运算,则两矩阵的列数必须相等(实际上,)。
(4)如果A、B两矩阵进行左除运算,则两矩阵的行数必须相等(实际上,)。
2.矩阵的运算函数
MATLAB系统函数库提供了一些常用的矩阵运算函数,熟悉这些对读者非常有用。例如,矩阵的加、减、乘、除等运算对参与运算的矩阵都有各自的矩阵维数匹配要求。表1-7列出了部分常用的矩阵运算函数。
表1-7 部分常用的矩阵运算函数
![img](https://epubservercos.yuewen.com/89B371/20308228401712906/epubprivate/OEBPS/Images/txt001_44.jpg?sign=1738941984-eFaKkRMzNom2Rtr6J2DHUKIxkaZWaj27-0-cbb7d0935fd28d7233fbf384df87d88a)
【例1-11】常用矩阵运算函数实例。
![](https://epubservercos.yuewen.com/89B371/20308228401712906/epubprivate/OEBPS/Images/txt001_45.jpg?sign=1738941984-LbekK1UbKVLYAhf7c3jtIchEEVmHPp6G-0-550b55742132637358d5378dc84e1f36)
3.矩阵的元素群运算
元素群运算是指矩阵中的所有元素均按单个元素进行运算。为了与以矩阵作为整体的运算符相区别,元素群运算约定:在矩阵运算符“*”“/”“\”“^”前加一个点符号“.”,以表示在进行元素群运算,而非矩阵运算。元素群的加、减运算的效果与矩阵的加、减运算的效果是一致的,运算符也相同。表1-8为矩阵的元素群运算符及其说明。
表1-8 矩阵的元素群运算符及其说明
![img](https://epubservercos.yuewen.com/89B371/20308228401712906/epubprivate/OEBPS/Images/txt001_46.jpg?sign=1738941984-WQTYG0COAkeOHLTLigZdIL9MsZ7qA38b-0-153199ec5031ef5775cc06b06d89cd49)
【例1-12】实现矩阵元素的群运算。
![](https://epubservercos.yuewen.com/89B371/20308228401712906/epubprivate/OEBPS/Images/txt001_47.jpg?sign=1738941984-cXq1cwH5k85vRsdPyHJ5XLynaRZie2jg-0-0f3baf536f0bcbc93b2c8b984759148e)
4.元素群的函数
MATLAB提供了几乎所有的初等函数,包括三角函数、对数函数、指数函数和复数运算函数等。大部分的MATLAB函数运算都是分别作用于函数变量(矩阵)的每个元素,意味着这些函数的自变量可以是任意阶的矩阵。表1-9列出了MATLAB常用初等函数及其说明。
表1-9 MATLAB常用初等函数及其说明
![img](https://epubservercos.yuewen.com/89B371/20308228401712906/epubprivate/OEBPS/Images/txt001_48.jpg?sign=1738941984-BviYIJueXVm0QA5GXTtje13liSDhNzrP-0-14d546dbc1ada092a857f641d9b6601d)
续表
![img](https://epubservercos.yuewen.com/89B371/20308228401712906/epubprivate/OEBPS/Images/txt001_49.jpg?sign=1738941984-qv2HWA2EjLiVwtapqpIHvCK4sJ3lTl4M-0-62b34e201c8ac2c6a6afb4e36a0f8e22)
【例1-13】已知,求
的余弦值、平方根及自然对数函数。
![](https://epubservercos.yuewen.com/89B371/20308228401712906/epubprivate/OEBPS/Images/txt001_52.jpg?sign=1738941984-OLwyQGJ1M0yRAqEZodI9X9dPWmRErUom-0-5e60a6f695723f8f3b6b923f7f7c1ee7)
1.6.2 矩阵的关系运算
关系运算用于比较两个操作数的大小,返回值为逻辑型变量。在MATLAB中,关系运算符如表1-10所示。当两个操作数都为数组或矩阵时,这两个操作数的维数必须相同,否则会显示出错信息。
表1-10 关系运算符
![img](https://epubservercos.yuewen.com/89B371/20308228401712906/epubprivate/OEBPS/Images/txt001_53.jpg?sign=1738941984-hlQCyN2cCSDI4ZQFyn8KCzY028UTFaCz-0-7f7ddb4eb8ebd4239519d797210cfbc1)
注意:对于浮点数,在比较是否相等时需要特别注意,因为浮点数在存储时存在相对误差。在程序中,最好不要直接比较两个浮点数是否相等,而应看两个浮点数的差是否小于某个特别小的数,以此判断两个浮点数是否相等。
【例1-14】实现给定矩阵的关系运算。
![](https://epubservercos.yuewen.com/89B371/20308228401712906/epubprivate/OEBPS/Images/txt001_54.jpg?sign=1738941984-d5oAHH09SGkPIOPyqboUw4iX5xZS7acg-0-dbe316283c6a86e88b2011e36fe47ee0)
运行程序,输出如下:
![](https://epubservercos.yuewen.com/89B371/20308228401712906/epubprivate/OEBPS/Images/txt001_55.jpg?sign=1738941984-qsppBi4UsGCpKPzdPVqIyHZKkcjxv51c-0-e72142b620ea0ebe1007b826338434e2)
注意:关系运算比算术运算具有更高的优先权。
1.6.3 矩阵的逻辑运算
在MATLAB中,逻辑运算分为三类,分别为逐个元素的逻辑运算、快速逻辑运算和逐位逻辑运算。其中,逐个元素的逻辑运算有四种,分别为逻辑与(&)、逻辑或(|)、逻辑非(~)和逻辑异或,如表1-11所示。逻辑与和逻辑或是双目运算符,逻辑非为单目运算符。需要注意的是,在进行两个数组或矩阵的逻辑与和逻辑或运算时,两者必须具有相同的维数。
表1-11 逐个元素的逻辑运算
![img](https://epubservercos.yuewen.com/89B371/20308228401712906/epubprivate/OEBPS/Images/txt001_56.jpg?sign=1738941984-rGbR3lWnTdyPqLqFsQPnpmjSQFYkVDB5-0-ba2f0b0904fff473c84a360c7a1ae90a)
【例1-15】对创建的矩阵进行逻辑运算。
![](https://epubservercos.yuewen.com/89B371/20308228401712906/epubprivate/OEBPS/Images/txt001_57.jpg?sign=1738941984-QTjpkXB4Za3Hkzss4DmYlkBOxnZn0bVl-0-f343d012dd59c22d30d6c07d53379f29)