帮助中心帮助中心
具有短路功能逻辑或
expr1 || expr2
expr1 || expr2 表示使用逻辑短路行为的逻辑 OR 运算。即,如果 expr1 为逻辑值 1 (true),将不计算 expr2 的结果。每个表达式的计算结果都必须为标量逻辑值。
expr1
expr2
OR
1
true
示例
全部折叠
创建两个向量。
X = [1 0 0 1 1]; Y = [0 0 0 0 0];
将短路 OR 运算符与 X 和 Y 结合使用会返回错误。短路运算符仅用于标量逻辑条件。
X
Y
使用 any 和 all 函数将每个向量约简为单个逻辑条件。
any
all
any(X) || all(Y)
ans = logical 1
该表达式等效于 1 OR 0,这样在仅计算第一个条件 any(X) 后该表达式的计算结果为逻辑值 1 (true)。
1 OR 0
any(X)
逻辑表达式,指定为计算结果为逻辑标量的任何有效的 MATLAB® 表达式。
示例: isscalar(x) || isvector(x)
isscalar(x) || isvector(x)
示例: (x > 1) || (x < -1)
(x > 1) || (x < -1)
数据类型: logical
logical
使用逻辑短路功能时,一旦结果完全确定,逻辑表达式的计算可以提前终止。由于逻辑 AND 和 OR 的属性,有时在计算所有条件之前就可完全确定逻辑达式的结果:
即使表达式中只有单个条件为 false,逻辑 and 运算符也会返回逻辑值 0 (false)。
and
0
false
即使表达式中只有单个条件为 true,逻辑 or 运算符也会返回逻辑值 1 (true)。
or
如果计算逻辑表达式由于遇到这些值之一而提前终止,则该表达式可以认为是短路。如果使用得当,这种方法可以让您在代码中高效地执行复杂的比较。
例如,在表达式 A && B 中,如果条件 A 为 false,MATLAB 将根本不计算条件 B。一旦确定 A 为 false,则 B 的值不会改变运算的结果。
A && B
A
B
当在 if 或 while 循环表达式的上下文(并且仅在该上下文中)使用按元素 & 和 | 运算符时,这些运算符使用短路来计算表达式的结果。
if
while
&
|
不过,您应始终使用 && 和 || 运算符启用短路评估。当表达式的计算结果不为逻辑标量时,使用 & 和 | 运算符实现短路会产生意外结果。
&&
||
backgroundPool
ThreadPool
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
在 R2006a 之前推出
Short-Circuit AND | all | any | find | logical | xor | true | false | and | or
Short-Circuit AND
find
xor
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Contact your local office