MATLAB和&&有什么区别?

MATLAB中&&&逻辑运算符有什么区别?

单符号&是逻辑AND运算符。 双和号&&又是一个逻辑AND运算符,采用短路行为。 短路只意味着第二个操作数(右侧)仅在结果没有完全由第一个操作数确定(左侧)

A&B(评估A和B)

A && B(B仅在A为真时才被评估)

&&|| 总是采取标量input和短路。 | 并且仅在if / while语句中采用arraysinput和短路。 对于任务,后者不会短路。

请参阅这些文档页面了解更多信息。

正如其他人已经提到的那样, &是一个逻辑AND运算符 , &&是一个短路AND运算符 。 它们在操作数的评估方式,以及它们是否在数组或标量上运行方面有所不同

  • & (AND运算符)和| (OR运算符)可以按照元素的方式对数组进行操作。
  • &&|| 是第二个操作数仅在结果没有完全由第一个操作数确定时求值的短路版本。 这些只能对标量进行操作,而不能对数组进行操作。

两者都是逻辑AND操作。 &&虽然,是一个“短路”的运营商。 从MATLAB文档:

它们是短路操作符,只有当结果不是由第一个操作数完全确定时才会评估第二个操作数。

在这里看到更多。

与其他语言类似,“&”是逻辑运算符,“&&”是逻辑运算符。

例如(赦免我的语法)。

如果A = [True True False True] B = False

A&B = [假假假]

..或者如果B =真A&B = [True True False True]

对于'&&',右操作数只有在左操作数为真时才计算,结果是一个布尔值。

x = (b〜= 0) && (a / b> 18.5)

希望这是明确的。

&&和|| 是以标量操作的短路操作员。 &和| 总是评估两个操作数,并对数组进行操作。

在构造用于条件语句(IF,WHILE等)中的参数时,一个好的经验法则是始终使用&& / ||。 表格,除非有很好的理由不要。 有两个原因…

  1. 正如其他人所说的,&& / ||的短路行为 类似于大多数C语言。 这种相似性/熟悉性通常被认为是有利的。
  2. 使用&&或|| 表单强制你写出完整的代码来决定你的向量参数的意图。 当a = [1 0 0 1]和b = [0 1 0 1]时,a&b是真还是假? 我不记得MATLAB的规则,可以吗? 大多数人不能。 另一方面,如果您使用&&或||,则您被迫“完整”地编写代码来解决条件。

这样做,而不是依靠MATLAB在&和|中的vectorparsing,会导致代码更加冗长,但是更安全,更容易维护。