IT story

MATLAB에서 &와 &&의 차이점은 무엇입니까?

hot-time 2020. 9. 9. 20:15
반응형

MATLAB에서 &와 &&의 차이점은 무엇입니까?


MATLAB에서 &&&논리 연산자 의 차이점은 무엇입니까 ?


단일 앰퍼샌드 &는 논리 AND 연산자입니다. 이중 앰퍼샌드 &&는 다시 단락 동작을 사용하는 논리 AND 연산자입니다. 단락은 결과가 첫 번째 피연산자 (왼쪽)에 의해 완전히 결정되지 않은 경우에만 두 번째 피연산자 (오른쪽)가 평가됨을 의미합니다.

A 및 B (A 및 B가 평가됨)

A && B (B는 A가 참인 경우에만 평가됨)


&&그리고 ||항상 스칼라 입력과 단락을. |그리고 &if / while 문에서만 배열 입력과 단락을 가져옵니다. 할당을 위해 후자는 단락되지 않습니다.

자세한 내용은 이 문서 페이지 를 참조하십시오.


다른 이미 언급 된 바와 같이, &A는 논리적 AND 연산자&&A는 단락 AND 연산자 . 피연산자가 배열 또는 스칼라에서 작동하는지 여부는 물론 피연산자가 평가 되는 방식이 다릅니다 .

  • &(AND 연산자) 및 |(OR 연산자) 는 요소별로 배열 에서 작동 할 수 있습니다 .
  • &&그리고 ||그 결과가 완전히 제 피연산자에 의해 결정되지 않은 경우에만 상기 제 피연산자가 평가되는 단락 버전이다. 이들은 배열이 아닌 스칼라 에서만 작동 할 수 있습니다 .

둘 다 논리적 AND 연산입니다. 그러나 &&는 "단락"연산자입니다. MATLAB 문서에서 :

결과가 첫 번째 피연산자에 의해 완전히 결정되지 않은 경우에만 두 번째 피연산자를 평가한다는 점에서 단락 연산자입니다.

여기에서 더 많은 것을 보십시오 .


다른 언어와 &마찬가지로은 논리 비트 연산자이고은 &&논리 연산입니다.

예를 들어 (내 구문을 용서하십시오).

만약..

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)

분명하길 바랍니다.


&& 및 || 있는 단락 스칼라에서 작동 연산자. & 및 | 배열에서 작동하고 또는 루프 표현식 의 컨텍스트에서만 단락을 사용 하십시오 .ifwhile


조건문 (IF, WHILE 등)에서 사용할 인수를 구성 할 때 좋은 경험 법칙은 항상 && / || 하지 않는 아주 좋은 이유가 없다면 양식. 두 가지 이유가 있습니다 ...

  1. 다른 사람들이 언급했듯이 && / ||의 단락 동작 대부분의 C와 유사한 언어와 유사합니다. 그 유사성 / 친숙성은 일반적으로 유리한 점으로 간주됩니다.
  2. && 또는 || 사용 양식 벡터 인수에 대한 의도를 결정하기 위해 전체 코드를 작성하도록합니다. a = [1 0 0 1] 및 b = [0 1 0 1] 인 경우 a & b는 참 또는 거짓입니까? MATLAB의 규칙이 기억 나지 않습니다. 대부분의 사람들은 할 수 없습니다. 반면에 && 또는 ||를 사용하면 조건을 해결하기 위해 코드를 "완전히"작성해야합니다.

이렇게하면 & 및 |의 벡터에 대한 MATLAB의 해상도에 의존하는 대신 약간 더 장황하지만 훨씬 안전하고 유지하기 쉬운 코드가 생성됩니다.

참고 URL : https://stackoverflow.com/questions/1379415/whats-the-difference-between-and-in-matlab

반응형