![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=1738851634-5cCMUZgQJbTws5XFclnt8KPupZgG5pwy-0-5a64a5047cc5e9b2eae283c90f6c7709)
运行结果如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_51.jpg?sign=1738851634-ypi9hqZOoVV9vn7eJqhhAqoA6c2xM3e7-0-51bbe0a32846b724ea769267dfb0faf5)
2.数组的乘除
MATLAB 中数组的乘除就是矩阵的乘除,可以分为矩阵乘除和矩阵元素之间的乘除。矩阵乘除就是矩阵之间的乘除;矩阵元素之间的乘除是 MATLAB 不同于其他编程语言的一个较大的优势,这可以避免像C语言中通过循环对数组中的元素逐一进行乘法或除法运算。下面举例说明数组相乘和数组元素之间的相乘:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_52.jpg?sign=1738851634-8kpqT2auppUOhmN7H3vecAkQYRy0OxLT-0-4e32415975d1dd9df5459c40451f77ee)
运行结果如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_53.jpg?sign=1738851634-JBnfBsPGM4EFKawSaoOgfYp2zCTKXusz-0-872a5640451565464d578dc77e571953)
上述示例属于矩阵之间的相乘。
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_54.jpg?sign=1738851634-Yw3BuQ7id6wMN0F876dGuU9MdDiYxv65-0-47bb3dfc9d2de615d46bc4aed4bfc4e7)
运行结果如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_55.jpg?sign=1738851634-ayZefukCVWgDeaCgm5crMJDB2odwLjnF-0-b765a3e48e43495047f4f5157d2a77d6)
数组元素之间的相乘是元素之间的相乘,并且相乘后得到的新的数组的维数不变,这与数组相乘有本质的区别。
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=1738851634-HC3NN745qc4VFSNN0Rf7tc8K1wqWKbTJ-0-884b7b2bd8345eddebb5716c70c0fa7c)
或者:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_57.jpg?sign=1738851634-77wujSz7nOUY3KPu1EoTrlzmEYhmANji-0-1d7cba7cf47976deaaa94b4bbc14371b)
具体示例如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_58.jpg?sign=1738851634-iQuPsddVfwvhW521zLDm9KxWwl56AJLJ-0-500beb756aef92cee4351bc51c18f4da)
运行结果如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_59.jpg?sign=1738851634-orcySYhYzKERe9F2lbP9vTUehvnqRAYC-0-2b3568157816550a9f3f98dba473a91b)
两个矩阵进行与运算,只要其中一个矩阵的一个元素为0,经过与运算后的矩阵的相应位置上为逻辑值0。
2.或运算
将A与B的对应元素进行或运算,若两个数只要有一个数不为0,则结果元素的值为1,否则为0。其调用形式如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_60.jpg?sign=1738851634-Ezolt08WFuoJIUZlqF1M37UjPFqTI4vZ-0-44cb5d3611fa9eaa8e15083c02aae779)
或者:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_61.jpg?sign=1738851634-1ybLFm3mKVLcDTVNEqGYKkCUktx3cpW9-0-76548bd18a7f4b9735143c66558124fe)
具体示例如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_62.jpg?sign=1738851634-3PlzUH5rf2oyUUMdVvUBVtxyyveDf2Zp-0-b5d57591de0c56f4bd036f3a1a75883a)
运行结果如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_63.jpg?sign=1738851634-prFgHdeU9JLE7K7LMpWhMca46JaeZtCi-0-d956f151b797d9d1d52464c44b3f49a4)
两个矩阵进行或运算,只有相对应的元素都为0,得到或运算的结果才为逻辑值0。
3.非运算
如果待运算矩阵的元素为0,则结果元素为1,否则为0。其调用形式如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_64.jpg?sign=1738851634-H9EXxhwgmULTKfEzLJxHGDjICgcRx5cQ-0-05d9d11dd73fdc456a3c3344974288e9)
或者:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_65.jpg?sign=1738851634-HelDiHzMryROl5M46m2I7bTDlF2GsUc9-0-2aa4eefe3e477d07011f13d83b7fb26a)
具体示例可以参考MATLAB的帮助文档。
4.异或运算
两个矩阵进行异或运算,若相应的两个数中一个为0,另一个不为0,则结果是逻辑值1,否则为0。其调用形式如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_66.jpg?sign=1738851634-hPD8opJ2g6S8D4Yhnq9vweulEJUhNsXQ-0-a3e693265f503ef93413190cacd96e31)
具体示例如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_67.jpg?sign=1738851634-r0gtcOHQwnfKeGXexhSWvjjlqzutSOdB-0-a78ce2b52bd18429011f05f435e5e40b)
运行结果如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_68.jpg?sign=1738851634-nqKwb0AelH5QziPZnFZPALrAtJVUqADk-0-e1c978924869070283f38c9027d42984)
熟练掌握上述逻辑运算有助于读者编写大型程序。
5.6.3 比较运算
MATLAB中的比较运算有6种,这里的比较运算与C语言中的一样,具体的用法读者可以查看帮助文档中的相关示例。比较运算的指令及其含义如表5-1所示。
表5-1 比较运算的指令及其含义
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_69.jpg?sign=1738851634-8jY7PtC09Qb2TSPJpvr9aBeH3vT1dHn0-0-017c111d990821c065a8436e7fe5a03d)
上面介绍了多种运算,在MATLAB中编程,必须明白矩阵运算与矩阵元素之间的运算。