MATLAB 帮助中心
具有短路功能的逻辑 AND
expr1 && expr2
expr1 && expr2 表示使用逻辑短路行为的逻辑 AND 运算。即,如果 expr1 为逻辑值 0 (false),将不计算 expr2 的结果。每个表达式的计算结果都必须为标量逻辑值。
expr1
expr2
AND
0
false
示例
全部折叠
指定第二个条件依赖于第一个条件的一个逻辑语句。在以下语句中,如果除数 b 为零,则计算右侧的关系没有意义。
b
b = 1; a = 20; x = (b ~= 0) && (a/b > 18.5)
x = logical 1
结果为逻辑值 1 (true)。然而,如果 (b ~= 0) 的计算结果为 false,MATLAB® 将假定整个表达式为 false,并提早终止对表达式的计算。
1
true
(b ~= 0)
指定 b = 0 并计算相同表达式。
b = 0
b = 0; x = (b ~= 0) && (a/b > 18.5)
x = logical 0
结果为逻辑值 0 (false)。第一个元素的计算结果为逻辑值 0 (false),这样表达式将短路。
创建一个包含名为 'File' 和 'Format' 的字段的结构体。
'File'
'Format'
S = struct('File',{'myGraph'},'Format',[])
S = struct with fields: File: 'myGraph' Format: []
如果希望多个条件为 true,则可以在 if 语句中使用短路表达式。一个条件可以基于另一个条件构建,在这种情况下,只有第一个表达式为 true 时才会计算第二个表达式。
if
指定一个仅当 S 包含一个名为 'Format' 的空字段时才会执行的 if 语句。
S
if isfield(S,'Format') && isempty(S.Format) S.Format = '.png'; end S
S = struct with fields: File: 'myGraph' Format: '.png'
第一个条件测试 'Format' 是否为结构体 S 中某字段的名称。然后,第二个语句测试 Format 字段是否为空。第二个条件是否为真取决于第一个条件。如果第一个条件不为 true,则第二个条件永远不会为 true。由于 S 包含一个名为 'Format' 的空字段,主体语句将执行 S.Format 并为其分配值 '.png'。
Format
S.Format
'.png'
逻辑表达式,指定为计算结果为逻辑标量的任何有效的 MATLAB® 表达式。
示例: isvector(x) && isreal(x)
isvector(x) && isreal(x)
示例: (x > 1) && (x < 10)
(x > 1) && (x < 10)
数据类型: logical
logical
使用逻辑短路功能时,一旦结果完全确定,逻辑表达式的计算可以提前终止。由于逻辑 AND 和 OR 的属性,有时在计算所有条件之前就可完全确定逻辑达式的结果:
即使表达式中只有单个条件为 false,逻辑 and 运算符也会返回逻辑值 0 (false)。
and
即使表达式中只有单个条件为 true,逻辑 or 运算符也会返回逻辑值 1 (true)。
or
如果计算逻辑表达式由于遇到这些值之一而提前终止,则该表达式可以认为是短路。如果使用得当,这种方法可以让您在代码中高效地执行复杂的比较。
例如,在表达式 A && B 中,如果条件 A 为 false,MATLAB 将根本不计算条件 B。一旦确定 A 为 false,则 B 的值不会改变运算的结果。
A && B
A
B
当在 if 或 while 循环表达式的上下文(并且仅在该上下文中)使用按元素 & 和 | 运算符时,这些运算符使用短路来计算表达式的结果。
while
&
|
不过,您应始终使用 && 和 || 运算符启用短路评估。当表达式的计算结果不为逻辑标量时,使用 & 和 | 运算符实现短路会产生意外结果。
&&
||
全部展开
backgroundPool
ThreadPool
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
在 R2006a 之前推出
Short-Circuit OR | all | any | find | logical | xor | true | false | and | or
Short-Circuit OR
all
any
find
xor
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处