matlab &与&&的区别

如题 以上两个有什么区别
2024-12-05 13:22:23
推荐回答(4个)
回答1:

1、用法不同

&适用于矩阵间的逻辑运算,&&不适用,只适用于单个元素,包括数值和字符。

2、使用效果不同

当判断两个逻辑值时,例如A&(f(x)>c)和A&&(f(x)>c)时,对于第一种情况,不论A是否为真,A和(f(x)>c)都要计算,但是对第二种情况,如果A是false,那么后面的(f(x)>c)就不用计算了,倘若f(x)是一个计算量大的函数,那么这将节省很多时间。

扩展资料:

&与&&的具体用法

一、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表达式都进行计算,就应该使用标准的&或者|。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

执行的结果一样。

回答2:

Matlab中的逻辑运算"&&"与"&",都是与的意思,但是有以下几个区别。

1、判断过程:

A&B:首先判断A的逻辑值,然后判断B的值,然后进行逻辑与的计算。

A&&B:首先判断A的逻辑值,如果A的值为假,就可以判断整个表达式的值为假,就不需要再判断B的值。

2、使用方法:

A&B:A和B不仅可以为标量,还可以为矩阵(e.g. A=[1 2 3],B=[0 1 0])

A&&B:A和B不能是矩阵,只能是标量。

扩展资料:

与&&和&类似的一组逻辑运算符号:||和|。这两个都是或的意思,并且同理于&&和&,只不过是“或”的逻辑。

那么出现这样的原因是因为:

A&&B 首先判断A的逻辑值,如果A的值为假,就可以判断整个表达式的值为假,就不需要再判断B的值。

这种用法非常有用,如果A是一个计算量较小的函数,B是一个计算量较大的函数,那么首先判断A对减少计算量是有好处的。

另外这也可以防止类似被0除的错误。

回答3:

对使用者来说没有什么区别,两者通用。
对于MATLAB来说,x & y表示x和y都为真,其表达式为1,它需要把两者同时计算。
x && y表示当计算x为0时,其表达式就为0,就不用计算y了。更智能一些。
以上都是大家这么说的。其实我也不知道怎么测试两者的区别,因为对于我们来说,它们两个都是一样用的。

回答4:

matlab的逻辑运算包括三种:与、或、非、异或运算。其表现方式有3种,分别是元素方式(element-wise)、比特方式(bit-wise)以及短路方式(short-circuit)。

元素方式&:矩阵A和B中的元素,如果是非零元素,则为真;如果是零,则为假。A&B把矩阵的对应元素取与,结果为一逻辑矩阵。当然,A B必须是同维数。
比特方式&:把矩阵的数值由十进制转换为二进制,进行逻辑运算,再把得到的二进制数转换为十进制。
短路方式&&:A&&B,A、B都是标量。用于if else等逻辑判断语句中。

在matlab论坛看的。很清楚了