Answers:
单个&符是逻辑AND运算符。双&符&&还是一个逻辑AND运算符,采用短路行为。短路仅表示仅当第一个操作数(左侧)未完全确定结果时才评估第二个操作数(右侧)
A和B(评估A和B)
A && B(仅当A为真时才评估B)
d != 0 && 1/d
vs- d !=0 & 1/d
第一个保证不被零除,第二个不保证。
&&
并||
接受标量输入并始终短路。 |
并&
仅在if / while语句中采用数组输入和短路。对于分配,后者不会短路。
有关更多信息,请参见这些文档页面。
&
以及|
if / while语句的信息?R2012b和R2014a似乎并非如此。
与其他语言类似,&
是逻辑按位运算符,&&
而是逻辑运算。
例如(请原谅我的语法)。
如果..
A = [True True False True]
B = False
A & B = [False False False False]
..要么..
B = True
A & B = [True True False True]
对于&&
,仅当左操作数为true时才计算右操作数,并且结果为单个布尔值。
x = (b ~= 0) && (a/b > 18.5)
希望很清楚。
bitand
是MATLAB中按位逻辑AND运算符。
构造用于条件语句(IF,WHILE等)的参数时,一个好的经验法则是始终使用&& / || 形式,除非有很好的理由不这样做。有两个原因...
这样做,而不是依赖MATLAB在&和|中的矢量分辨率,会导致代码更加冗长,但更安全,更易于维护。
r((r<2)&(r<2))
。
&
可以在数组上运行,但&&
只能在标量上运行。