【问题标题】:MATLAB logical operators: && vs &MATLAB 逻辑运算符:&& vs &
【发布时间】:2012-02-15 18:54:37
【问题描述】:

如果我想确保if 语句仅在两个条件都为真时执行,我应该在语句的子句之间使用& 还是&&

例如,我应该使用

if a == 5 & b == 4

if a == 5 && b == 4

我知道前者是元素方面的,后者能够短路,但我不清楚这意味着什么。

【问题讨论】:

  • MATLAB 文档讨论了运算符短路here&&|| 运算符here 以及逐元素运算符&|here

标签: matlab operands


【解决方案1】:

对于标量布尔条件,我建议您使用&&。短路意味着如果第一个条件为 false,则不评估第二个条件,但无论如何您都知道结果为假。 &&& 仅当表达式的两边都为真时才会为真,但如果操作数之一是矩阵,& 可以返回矩阵结果。

另外,我相信在 Matlab 中比较应该使用==,而不是=(赋值)。

【讨论】:

  • 顺便说一句,您为什么不希望 AND 条件短路?因为只有在所有条件都为真时才会为真,当然如果第一个条件被评估并被证明为假,那么评估更多只是浪费处理能力..?
  • @CaptainProg 有时您想评估函数的副作用
  • Sverre,你能详细说明一下吗?
猜你喜欢
  • 1970-01-01
  • 2014-08-09
  • 2020-12-20
  • 2021-04-19
  • 1970-01-01
  • 2018-01-13
  • 2017-09-08
  • 2011-09-23
相关资源
最近更新 更多