【转】matlab中&&和&的区别

来源:互联网 发布:淘宝内购价群是真的吗 编辑:程序博客网 时间:2024/04/27 20:59
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>10if flag   %Do Somethingend if上面的表达式就可以防止denum等于0的情况。当然,如果你希望在判断的时候,对A和B表达式都进行计算,就应该使用标准的&或者|。Matlab中的if和while语句中的逻辑与和逻辑或都是默认使用short-circuit形式。if flag=denum~=0 && num/denum>10   %Do Somethingend if与if flag=denum~=0 & num/denum>10   %Do Somethingend if执行的结果一样
0 0