![MATLAB R2020a从入门到精通(升级版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/74/38507074/b_38507074.jpg)
5.6 数组元素运算
前面着重介绍了数组的基本知识,从本节开始主要介绍与数组有关的一些处理方法。
5.6.1 算术运算
1.数组的加减
数组的加减与普通数字的加减一样。如果一个数组加或减一个数,则数组的所有元素都加或减这个数;一个数组加或减一个数组,则这两个数组的大小应该保持一致,并且相对应的元素进行相加或相减。具体示例如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_50.jpg?sign=1739049625-c2adt8GFZafE4Cp9UbM13R5QxmEpaGTO-0-1ebfbebdd86148beb70ded3079a21882)
运行结果如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_51.jpg?sign=1739049625-pOzwBy8kURb8wHF340pgKcpIkg9ABxe7-0-3c118452aa61f19982856abe60d95941)
2.数组的乘除
MATLAB 中数组的乘除就是矩阵的乘除,可以分为矩阵乘除和矩阵元素之间的乘除。矩阵乘除就是矩阵之间的乘除;矩阵元素之间的乘除是 MATLAB 不同于其他编程语言的一个较大的优势,这可以避免像C语言中通过循环对数组中的元素逐一进行乘法或除法运算。下面举例说明数组相乘和数组元素之间的相乘:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_52.jpg?sign=1739049625-8EahyLgcfq5nhAytBKVlLW3Nyg5ZmkiX-0-aa91903418a4a6e86c3ba0663a02e265)
运行结果如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_53.jpg?sign=1739049625-ZKFYJIYwlQahaRgFvv1xpSnhQuTdPoLb-0-fb9d541fd28b01ce5f919141c518286b)
上述示例属于矩阵之间的相乘。
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_54.jpg?sign=1739049625-4WCoWVZTtMlp9STgy5ryJsMpiFPnJyHU-0-d202a5ce1ef2b6ee8f7bd91b52272fbe)
运行结果如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_55.jpg?sign=1739049625-qEjFIvbcLZ17EEoloNFZP0PUOSGY9xk3-0-69b893f207ba2cb4bd62bcc000f9f89c)
数组元素之间的相乘是元素之间的相乘,并且相乘后得到的新的数组的维数不变,这与数组相乘有本质的区别。
5.6.2 逻辑运算
矩阵的比较关系是针对两个矩阵对应元素而言的,所以在使用逻辑运算时,首先应该保证这两个矩阵的维数一致或其中一个矩阵为标量。
比较逻辑运算是对逻辑矩阵的对应运算进行比较,若关系满足,则将比较结果矩阵中该位置的元素置为1,否则置为0。关系运算包括如下4种。
1.与运算
将A与B的对应元素进行与运算,若两个数均为非0值,则结果元素的值为1,否则为0。其调用形式如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_56.jpg?sign=1739049625-eYrvdpN868hm0AiNIL5ikSoTmRBOnXWU-0-1d32993fceaef238cc4386739ee6ca53)
或者:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_57.jpg?sign=1739049625-qe52fmFK0NZQnr15r4HplihKA6sQnT27-0-9ad96542b3dfa99482e6139595d9d617)
具体示例如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_58.jpg?sign=1739049625-8QSVOoXBazk3o6eXABEdoa2QIAlOca8N-0-86d067a61784d8da98f18d142716d67e)
运行结果如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_59.jpg?sign=1739049625-vAWgiSENlgJLANx6gBTz5RZlhNe5dYG0-0-ec56addbc1f86b4fd29c0aebf7a7d0a4)
两个矩阵进行与运算,只要其中一个矩阵的一个元素为0,经过与运算后的矩阵的相应位置上为逻辑值0。
2.或运算
将A与B的对应元素进行或运算,若两个数只要有一个数不为0,则结果元素的值为1,否则为0。其调用形式如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_60.jpg?sign=1739049625-ogn1pZt42NBmJEVKUj5z09q1CGwMetQj-0-63d73a5477def358f52cfbec5674bc49)
或者:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_61.jpg?sign=1739049625-QwKyMsJKquipTJ3izOiu7cS6i3rY1Hf4-0-a7e4e54d4f4f145d6e1bbe952b4aaf4a)
具体示例如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_62.jpg?sign=1739049625-JLRz0evSk4GwunVjqb5AHpVIPQQcJ5El-0-d5ff17fccd8b1c75206d09f5f82c7ebd)
运行结果如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_63.jpg?sign=1739049625-XsQiCqSdYq2hkfbCnk8gwogIzqc0ZySp-0-914b2529e7edefa35d4a458f104c9cec)
两个矩阵进行或运算,只有相对应的元素都为0,得到或运算的结果才为逻辑值0。
3.非运算
如果待运算矩阵的元素为0,则结果元素为1,否则为0。其调用形式如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_64.jpg?sign=1739049625-PXTNjBliwBgFwQg72pq2AVc1kRLsCVgE-0-efcc9e8128a136b8de857a6e343ed9f6)
或者:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_65.jpg?sign=1739049625-UQO7RbyI1s3wgLrqmBRn6WmGQHZoS3DR-0-0a2dcb3332da019dc8afd2bacdb5f1ee)
具体示例可以参考MATLAB的帮助文档。
4.异或运算
两个矩阵进行异或运算,若相应的两个数中一个为0,另一个不为0,则结果是逻辑值1,否则为0。其调用形式如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_66.jpg?sign=1739049625-vVGTu5D9v74WwVQJtXovSf6gPSjZJe7v-0-12f7531281ba4a191d13db687f6af85a)
具体示例如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_67.jpg?sign=1739049625-Zicz3iF0iVx5nuzCqGdxYETOn4D2Zx1Y-0-d4200f77ce972f879a655cfe54c8a50f)
运行结果如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_68.jpg?sign=1739049625-dsjWKAD6yVwU78nZAgr3oK8C5YB9nLKL-0-d1abb17b9c378bbd35949f0546ab6a82)
熟练掌握上述逻辑运算有助于读者编写大型程序。
5.6.3 比较运算
MATLAB中的比较运算有6种,这里的比较运算与C语言中的一样,具体的用法读者可以查看帮助文档中的相关示例。比较运算的指令及其含义如表5-1所示。
表5-1 比较运算的指令及其含义
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_69.jpg?sign=1739049625-KKPwuee5TIskjad7evaNqb3nCztc6vdw-0-123f3b7f029e41c175477f89eeb5054e)
上面介绍了多种运算,在MATLAB中编程,必须明白矩阵运算与矩阵元素之间的运算。