![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=1738837209-HWhhbpkTdjPkxwQHgJ8dJ628HHNR26G1-0-6b659b7fea53c1264ff7a085bb145efd)
运行结果如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_51.jpg?sign=1738837209-QyKtdoXIra3FE6P25lZmlg9ORy7talhD-0-ad2ff6b18456c5d479a489b1d9c8cb58)
2.数组的乘除
MATLAB 中数组的乘除就是矩阵的乘除,可以分为矩阵乘除和矩阵元素之间的乘除。矩阵乘除就是矩阵之间的乘除;矩阵元素之间的乘除是 MATLAB 不同于其他编程语言的一个较大的优势,这可以避免像C语言中通过循环对数组中的元素逐一进行乘法或除法运算。下面举例说明数组相乘和数组元素之间的相乘:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_52.jpg?sign=1738837209-iUHrMMY51ONGdWHv6r56zR2I1PZk9PIJ-0-dfc78e1b684fc49b22f106a3fcafbfe0)
运行结果如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_53.jpg?sign=1738837209-VUGiGbTwKxF0lpOBoGiqTIdy3m7yNTGA-0-de3ede8dedc0ce23852878391477b741)
上述示例属于矩阵之间的相乘。
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_54.jpg?sign=1738837209-YKuvhHUSojcr6f9Thu04GwbWu5HVeH5w-0-6acc2f41ddd47c1938b66465b1ac66e1)
运行结果如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_55.jpg?sign=1738837209-ipKPSORyY78mT5XRqlqTW76LHeXnSbWD-0-4bfaf5cc5a9e0a8473d00ecdf660266e)
数组元素之间的相乘是元素之间的相乘,并且相乘后得到的新的数组的维数不变,这与数组相乘有本质的区别。
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=1738837209-1LDKk1NYultf5HoQDQvgw6kMYxfwVmXM-0-66e87180a4439c248f812d7f18761940)
或者:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_57.jpg?sign=1738837209-aIriduznakpSLAQ5Uu5fRc1IjoCnpage-0-c7698c0fd62e41dac86ebddd1be8f32c)
具体示例如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_58.jpg?sign=1738837209-LmOmISSynqCMspoTXcpDStz7LiZmk5JA-0-cbf6cf9a5096cdd936fade3c14d196b3)
运行结果如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_59.jpg?sign=1738837209-IWDkMJjH3WAP64g98oKBwltARB2pAIx4-0-e1978a8c765b0c6efbd949eabe125df0)
两个矩阵进行与运算,只要其中一个矩阵的一个元素为0,经过与运算后的矩阵的相应位置上为逻辑值0。
2.或运算
将A与B的对应元素进行或运算,若两个数只要有一个数不为0,则结果元素的值为1,否则为0。其调用形式如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_60.jpg?sign=1738837209-PsVHz5DpAY2PztIhbDJ7RrVwkInCfWmU-0-3c8803a081caec03cfbfcc86cba4cda9)
或者:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_61.jpg?sign=1738837209-EyJsS2i4tQKy0GXS7bu7lpaMiBwuqnzn-0-de6a74e4704b144cad1c77d832122a02)
具体示例如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_62.jpg?sign=1738837209-R1n3BWAKe82HNqdJXZQmjkHzwi04pzil-0-c1a1d1a1ba7dc0f0c62edd32fead974a)
运行结果如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_63.jpg?sign=1738837209-k3EfzYHJcLxXlajnAfdtwgLyrMV2mrKv-0-4b6a158770960b9e5f47294244f9d3f4)
两个矩阵进行或运算,只有相对应的元素都为0,得到或运算的结果才为逻辑值0。
3.非运算
如果待运算矩阵的元素为0,则结果元素为1,否则为0。其调用形式如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_64.jpg?sign=1738837209-TGiw7EKT2vNN184Qec5tS0B7jy6UOyEv-0-fa7cd1e30f74d100c878e699304c5c89)
或者:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_65.jpg?sign=1738837209-1e7FpbKYExx5rXBmqFlxHH42qXpFF4MG-0-89291d041b34d851674a5ddd5ad5802b)
具体示例可以参考MATLAB的帮助文档。
4.异或运算
两个矩阵进行异或运算,若相应的两个数中一个为0,另一个不为0,则结果是逻辑值1,否则为0。其调用形式如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_66.jpg?sign=1738837209-jhAxum9sRniyumDihXP7x7R4Uv84IiaS-0-3912304f57d475b4e013e5b2449c95af)
具体示例如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_67.jpg?sign=1738837209-vQRLRtT1fbaeFCZSO66K5fSE8LU5FMBP-0-5850db86ae2fe36ddecca99a32f7025e)
运行结果如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_68.jpg?sign=1738837209-07BZ2Ps8t0K4RtwJLHFpMPmNBuvARXju-0-9ed942334a3730ac89e7e65c4f094775)
熟练掌握上述逻辑运算有助于读者编写大型程序。
5.6.3 比较运算
MATLAB中的比较运算有6种,这里的比较运算与C语言中的一样,具体的用法读者可以查看帮助文档中的相关示例。比较运算的指令及其含义如表5-1所示。
表5-1 比较运算的指令及其含义
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_69.jpg?sign=1738837209-P5XzZMxYBsh5i0WAdBD3fEZlK95ETw5z-0-5f9a7398b478dc126f7b2e9cae6ddd51)
上面介绍了多种运算,在MATLAB中编程,必须明白矩阵运算与矩阵元素之间的运算。