MATLAB에서 &
및 &&
논리 연산자 의 차이점은 무엇입니까 ?
답변:
단일 앰퍼샌드 &는 논리 AND 연산자입니다. 이중 앰퍼샌드 &&는 다시 단락 동작을 사용하는 논리 AND 연산자입니다. 단락은 결과가 첫 번째 피연산자 (왼쪽)에 의해 완전히 결정되지 않은 경우에만 두 번째 피연산자 (오른쪽)가 평가됨을 의미합니다.
A 및 B (A 및 B가 평가됨)
A && B (B는 A가 참인 경우에만 평가됨)
d != 0 && 1/d
vs- d !=0 & 1/d
첫 번째는 0으로 나누지 않음을 보장하고 두 번째는 그렇지 않습니다.
&&
그리고 ||
항상 스칼라 입력과 단락을. |
그리고 &
if / while 문에서만 배열 입력과 단락을 가져옵니다. 할당을 위해 후자는 단락되지 않습니다.
자세한 내용은 이 문서 페이지 를 참조하십시오.
&
및 |
if / while 문에 대한 정보가 있습니까? R2012b 및 R2014a에서는 그렇지 않은 것 같습니다.
다른 이미 언급 된 바와 같이, &
A는 논리적 AND 연산자 와 &&
A는 단락 AND 연산자 . 피연산자가 배열 또는 스칼라에서 작동하는지 여부는 물론 피연산자가 평가 되는 방식이 다릅니다 .
&
(AND 연산자) 및 |
(OR 연산자) 는 요소별로 배열 에서 작동 할 수 있습니다 .&&
그리고 ||
그 결과가 완전히 제 피연산자에 의해 결정되지 않은 경우에만 상기 제 피연산자가 평가되는 단락 버전이다. 이들은 배열이 아닌 스칼라 에서만 작동 할 수 있습니다 .다른 언어와 &
마찬가지로은 논리 비트 연산자이고은 &&
논리 연산입니다.
예를 들어 (내 구문을 용서하십시오).
만약..
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))
.
&
배열에서 작동 할 수 있지만&&
스칼라에서만 작동 할 수 있습니다.