MATLAB软件的逻辑运算符
符号“&”、“|”、“~数组元素。0的逻辑量为“假”,而任意非零数的逻辑量为“真”。逻辑运算的运算法则如下。
·在逻辑数组中,0代表逻辑“假”,1代表逻辑“真”。
·如果两个标量a和b参加运算,则各逻辑运算的运算规则如表2-1所示。
·如果两个维数相同的矩阵参与运算,则将A和B相同位置上的元素按标量逻辑运算的规则进行计算,结果返回与矩阵A和B同样大小的矩阵,其元素由同位置上的A和B的元素进行逻辑运算的结果所决定。
·如果标量a和矩阵A参加运算,则将a和A中的所有元素进行逻辑运算,返回结果是由0和1组成的与A具有同样维数的矩阵。
·在逻辑操作符、关系操作符和计算操作符三者中,逻辑操作符的优先级最小,但是逻辑“非”的优先级最高。
·在逻辑“与”、“或”、“非”三者中,“与”的优先级高于“或”的优先级,而都低于“非”的优先级。
·通过增加“()”可以改变各操作符之间的优先级。
表2-1 逻辑运算规则
例2.14 MATLAB中逻辑运算符的用法。
>> a=[1 2;3 4]
a =
1 2
3 4
>> b=[1 0;0 1]
b =
1 0
0 1
>> a&b %求逻辑“与”
ans =
1 0
0 1
>> a|b %求逻辑“或”
ans =
1 1
1 1
>> ~
ans =
0 1
1 0
>> xor(a,b) %求逻辑“异或”
ans =
0 1
1 0
>> ~
ans =
0 0
0 0
>> a-1>=1&0
ans =
0 0
0 0
>> ~
ans =
1 0
0 0
>> ~
ans =
-1 -1
-1 -1
>> 1|0&0
ans =
1
>> 0&0|1
ans =
1
>> and(a,b)
ans =
1 0
0 1
编程技巧:在M文件中,可以用and(A,B)、or(A,B)、not(A)分别进行“与”、“或”、“非”的操作。也可以在命令行中进行直接输入,其结果与用“&”、“|”、“~”运算所得结果相同。