关于matlab的逻辑运算命令

matlab中&与&&,|与||含义一样吗?知道&,|的含义但不清楚&&,||的意思

&&和||被称为&和|的short circuit形式,

A&B
(1)首先判断A的逻辑值,然后判断B的值,然后进行逻辑与的计算。
(2)A和B可以为矩阵(e.g. A=[1 0],B=[0 0])。


A&&B
(1)首先判断A的逻辑值,如果A的值为假,就可以判断整个表达式的值为假,就不需要再判断B的值。
(2)A和B不能是矩阵,只能是标量。


"|"与“||”同理,即:

AIB
(1)首先判断A的逻辑值,然后判断B的值,然后进行逻辑或的计算。
(2)A和B可以为矩阵(e.g. A=[1 0],B=[0 0])。


AIIB
(1)首先判断A的逻辑值,如果A的值为真,就可以判断整个表达式的值为真,就不需要再判断B的值。
(2)A和B不能是矩阵,只能是标量。

实例:

拓展说明:

除了|和&两个操作符外,还有一种逻辑操作符:非

非(或逻辑非)是一元操作符,即~A:当A是非零时结果为“0”;当A为“0”时,结果为“1”。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-05-19
&(|)可用来对数组进行处理
而&&则不能。
如a=[0 1 2];
>> b=[1 2 3];
>> a&&b
??? Operands to the || and && operators must be convertible to logical scalar values.

>> a&b

ans =

0 1 1
第2个回答  2015-12-12
matlab中怎样表达或者的运算符(或函数)为:
“|(or)”

【附录】
MATLAB 逻辑运算符
运算符与函数 说明
&(and) 逻辑与
|(or) 逻辑或
~(not) 逻辑非
xor 逻辑异或
第3个回答  2009-05-20
&&和||被称为&和|的short circuit形式,
表达式:A&B首先判断A的逻辑值,然后判断B的值,然后进行逻辑与的计算。

A&&B 首先判断A的逻辑值,如果A的值为假,就可以判断整个表达式的值为假,就不需要再判断B的值。这种用法非常有用,如果A是一个计算量较小的函数,B是一个计算量较大的函数,那么首先判断A对减少计算量是有好处的。另外这也可以防止类似被0除的错误:

flag=denum~=0 && num/denum>10
if flag
%Do Something
end if
上面的表达式就可以防止denum等于0的情况。当然,如果你希望在判断的时候,对A和B表达式都进行计算,就应该使用标准的&或者|。Matlab中的if和while语句中的逻辑与和逻辑或都是默认使用short-circuit形式。

if flag=denum~=0 && num/denum>10
%Do Something
end if

if flag=denum~=0 & num/denum>10
%Do Something
end if

执行的结果一样。本回答被提问者采纳
相似回答