Matlab中的逻辑运算符(“&&“和“||“)的运用本质及其优点
逻辑运算符:&(与)、|(或)、~(非)
&(与)和 |(或)运算符既可以计算两个同阶矩阵也可用来计算两个标量的逻辑关系,当输入的矩阵均为0—1矩阵时,那么输出也是0—1矩阵。
学上学的并没有什么区别。下来重点来看看以下两个逻辑运算符在matlab中的实质运算过程。
Matlab中,"&&"和"||"运算符的逻辑运算"&&"与"&","||"与"|"的区别如下:
"&&"运算符
(1)A&&B的运算中,是先判断A的逻辑值,下一步再判断B的值,最后才判断整个表达式的值。当A为假时,那么就之间认为这个表达上为假的,不
断B的值。
(2)A和B只能是标量,不能是矩阵。
"||"运算符(同理)
(1)A||B的运算中,是先判断A的逻辑值,下一步再判断B的值,最后才判断整个表达式的值。当A为假时,那么就之间认为这个表达上为假的,不再
的值。
(2)A和B只能是标量,不能是矩阵。
优点:
那么,在Matlab中,这样计算的法则有什么好处呢,最大的好处就是,当你判断左边的为错误时,就可以得到整个为错误,就不需要计算以下的过程
在程序中,当A为一个小计算量的函数时,B为一个较大的计算量的函数时,那么这样就能够大大提高计算速度,有利于优化算法。
matlab中的三种逻辑运算符
元素方式逻辑运算符
以
A = [0 1 1 0 1];
B = [1 1 0 0 1];
为例:
运算符
功能描述
例
&
与,两个操作数同时为1,结果为1;反之,结果为0。
A&B = 01001
|
或,两者同时为0,结果为0,反之,结果为1.
A|B = 11101
~
非,A为0时,结果为1,否则结果为0.
~A = 10010
xor
异或,两个操作数相同时,结果为0,否则为1。
xor(A,B) = 10100
比特方式逻辑运算符
以
A = 28;
B = 21;
为例:
%%
A = 28; %对应二进制为11100
B = 21; %对应二进制为10101
bitand(A,B) %对对应的位进行与操作,因此得到的二进制为10100
其余函数不进行一一举例。注意,这里的‘位’指的是转化为二进制后的位。
函数名
功能
例
bitand
位与,返回两个非负整数的对应位做与操作
bitand(A,B) = 20
(binary 10100)
bitor
位或,返回两个非负整数的对应位做或操作
bitor(A,B) = 29
(binary 11101)
bitcmp
位码。返回n位整数表示的补码
bitcmp(A,5)
(binary 00011)
bitxor
位或异。返回两个非负整数的对应位做异或操作
bitxor(A,B) = 9
(binary 01001)
短路逻辑运算符
以
A = 10
B = 5
为例:
运算符
功能描述
例
&&
逻辑与,两个操作数同时为1,运算结果为1,否则为0
X =
(A>0)&&(A>B)
结果为1;
X = (A>0)&&(A<B)
结果为0
||
逻辑非,两个操作数同时为0,运算结果为0,否则为1
X =
(A<0)&&(A<B)
结果为1;
X = (A<0)&&(A>B)
结果为0