MATLAB矩阵分析和计算
上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。