![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=1739339638-OUnUO57wtHNStrAUAj2eAy2eFsTcqG3n-0-7a0f1b8371a763e1b2724b8535301f9f)
运行结果如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_51.jpg?sign=1739339638-MsKxwFFLn8EkeZmIt5hNMyat4kdfv3P4-0-31d34784902194d4c18c4b6030930115)
2.数组的乘除
MATLAB 中数组的乘除就是矩阵的乘除,可以分为矩阵乘除和矩阵元素之间的乘除。矩阵乘除就是矩阵之间的乘除;矩阵元素之间的乘除是 MATLAB 不同于其他编程语言的一个较大的优势,这可以避免像C语言中通过循环对数组中的元素逐一进行乘法或除法运算。下面举例说明数组相乘和数组元素之间的相乘:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_52.jpg?sign=1739339638-SNEE8XFkFbHxE8341vW7tSK3GeQ3U0WE-0-7839b688d2c598a2a15e378bbb3ab70d)
运行结果如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_53.jpg?sign=1739339638-kVwVQcAKDBFOIZ6fxbO2lXrsnBgeIZvw-0-b6f2458e6820c18af56b8500921efeda)
上述示例属于矩阵之间的相乘。
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_54.jpg?sign=1739339638-nGtYwitu5T9zQmSfifIJH4pgsMh0zWgF-0-258f96b4eaf13410458efc60bbe0c5cf)
运行结果如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_55.jpg?sign=1739339638-IhWySsnt1GCjV5BTyPweHT3a8w7ViXCS-0-62b8ceb4b9060b753f607df0e3f85e83)
数组元素之间的相乘是元素之间的相乘,并且相乘后得到的新的数组的维数不变,这与数组相乘有本质的区别。
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=1739339638-XQPa1bxq9tT2pixyeQgf0MmpKheJIvbb-0-49ba45f2ef347278a5f5765a27ef2a8e)
或者:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_57.jpg?sign=1739339638-nCi7jRy3yJaLtW8zryNB2ZDRGlFXPJz7-0-9b71565f4dde71f98c396643839d2b0d)
具体示例如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_58.jpg?sign=1739339638-nzgFsVHA6Yrip0AhKhxiDK1aFdgGL9T6-0-6ddc1f502b63772ac5a0338579d89931)
运行结果如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_59.jpg?sign=1739339638-4ucDZ4e4ZSL05c8UYgfzskysAtCTBmry-0-b4ea0dbbab9a0f17888f49ff03229a06)
两个矩阵进行与运算,只要其中一个矩阵的一个元素为0,经过与运算后的矩阵的相应位置上为逻辑值0。
2.或运算
将A与B的对应元素进行或运算,若两个数只要有一个数不为0,则结果元素的值为1,否则为0。其调用形式如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_60.jpg?sign=1739339638-VkUyE7vSb8STPgZnlFNSMZx6aSdHiZl3-0-39e0bf77f58c5308be06fd47a2a3c22c)
或者:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_61.jpg?sign=1739339638-694jmt5OPRWywHwZx5ayggz0UX5EWZyj-0-2b4801d86498ed4b6b62d6f982a636e0)
具体示例如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_62.jpg?sign=1739339638-XUt8EB3ZqzdDgomWkOa6JxZeCwdeINww-0-87b975aaa63331b09f0af3fbd2c2b809)
运行结果如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_63.jpg?sign=1739339638-JgdPQ2R25Z5ye7O8m0sk87tjODF4UrJH-0-938b27299d6d893e997138774e1e99bb)
两个矩阵进行或运算,只有相对应的元素都为0,得到或运算的结果才为逻辑值0。
3.非运算
如果待运算矩阵的元素为0,则结果元素为1,否则为0。其调用形式如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_64.jpg?sign=1739339638-ENucDGPcqxwVfXkhIdO84FBERbet1Cya-0-f7e437a1f4c48eb1283a6535551cc921)
或者:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_65.jpg?sign=1739339638-xl4ZfIhPvIVIwNK8rEp2vB1Yj329HUcI-0-8aacbde70c5500acdc352caa09e88b30)
具体示例可以参考MATLAB的帮助文档。
4.异或运算
两个矩阵进行异或运算,若相应的两个数中一个为0,另一个不为0,则结果是逻辑值1,否则为0。其调用形式如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_66.jpg?sign=1739339638-l8OYh950o50totQRIqCEEbFOsIBtj963-0-33b1da3bb549c27233ae858f23107de0)
具体示例如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_67.jpg?sign=1739339638-hPBrbuFXhfXwB7VU6nAc7AJVKbc2yloF-0-cf9a750272bede2d705586b07262664a)
运行结果如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_68.jpg?sign=1739339638-JRozxNvfI6E2YpnUv8855sClcHZo50go-0-10becdd35d1777ee42a305ac95dc6c97)
熟练掌握上述逻辑运算有助于读者编写大型程序。
5.6.3 比较运算
MATLAB中的比较运算有6种,这里的比较运算与C语言中的一样,具体的用法读者可以查看帮助文档中的相关示例。比较运算的指令及其含义如表5-1所示。
表5-1 比较运算的指令及其含义
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_69.jpg?sign=1739339638-n09bELB7aAjRULKWdUjC0Wp5TpbkCK2w-0-0b84dc518eddbbaa892008a161fa5a3a)
上面介绍了多种运算,在MATLAB中编程,必须明白矩阵运算与矩阵元素之间的运算。