上QQ阅读APP看书,第一时间看更新
4.11 数组的逻辑运算
数组的逻辑运算包括&(逻辑与)、|(逻辑或)、~(逻辑非)3种。逻辑运算的运算法则如下:
•在逻辑运算中,如果为非零元素则为逻辑真,用1表示;零元素为逻辑假,用0表示。
•若参与逻辑运算的是两个标量a和b,那么对于a&b,a、b全为非零时,运算结果为1,否则为0;对于A|b,a、b中只要有一个非零,运算结果为1;对于~a,当a是零时,运算结果为1,当a非零时,运算结果为0。
•若参与逻辑运算的是两个同维数组,那么将对数组相同位置上的元素按标量规则逐个进行运算。最终运算结果是一个与原数组同维的数组,其元素由0或1组成。
•若参与逻辑运算的一个是标量,一个是数组,那么将在标量与数组中的每个元素之间按标量规则逐个进行运算。最终运算结果是一个与数组同维的数组,其元素由0 或1组成。
•逻辑非是单目运算符,也服从数组运算规则。
•在算术运算、关系运算、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。
【例4.16】 数组的逻辑运算。
clear all; A=[11 0 0 1 5] B=[3 15 0 0.5 5] C=A&B D=A|B E=~A
运行后输出结果如下:
在程序中,进行数组A和B的逻辑与、逻辑或和逻辑非。返回值为逻辑型数组,与数组有相同的维数。
【例4.17】 数组的高级逻辑运算。
clear all; A=[11 0 0 1 5] B=[3 15 0 0.5 5] C=A&1 D=A|0 A(A&1)=10
运行后输出结果如下:
在程序中,对数组进行逻辑运算。此外,将数组A中非0元素修改为10。