Matlab中的逻辑运算

Matlab中的逻辑运算


2024年4月27日发(作者:)

Matlab中的逻辑运算"&&"与"&","||"与"|"的区别

(2009-12-06 20:59:06)

转载

标签:

杂谈

逻辑运算符:

&

|

~

“&”和“|”操作符可比较两个标量或两个同阶矩阵.对于矩阵来说必须符合规则,

如果A和B都是0-1矩阵,则A&B或A|B也都是0-1矩阵,这个0-1矩阵的元素是A和B对

应元素之间逻辑运算的结果,逻辑操作符认定任何非零元素都为真,给出“1”,任何零元

素都为假,给出“0”.

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

果为“1”.因此下列两种表示:

p | (~p) 结果为1.

p & (~p) 结果为0.

any和all函数在连接操作时很有用,设x是0-1向量,如果x中任意有一元素非零时,any(x)

返回“1”,否则返回“0”;all(x)函数当x的所有元素非零时,返回“1”,否则也返回

“0”.这些函数在if语句中经常被用到.如:

if all(A<5)

do something

end

另外,还有"&&"和"||"运算符,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不能是矩阵,只能是标量。

"|"与“||”同理。

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

执行的结果一样


发布者:admin,转转请注明出处:http://www.yc00.com/news/1714180216a2397130.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信