2012-01-21 1 views
3

두 조건이 모두 맞으면 if 문만 실행되도록하려면 문장의 절 사이에 & 또는 &&을 사용해야합니까?MATLAB 논리 연산자 : && vs &

예를 들어, 나는 전자는 elementwise이고 후자는 단락 할 수 있지만, 이것이 무엇을 의미하는지에 명확하지 오전 이해

if a == 5 && b == 4 

if a == 5 & b == 4 

또는

을 사용해야합니다.

+1

MATLAB 문서는 연산자 단락 [여기] (http://www.mathworks.co.uk/help/techdoc/matlab_prog/f0-40063.html#f0-39129), '&&'및 ' (http://www.mathworks.co.uk/help/techdoc/ref/logicaloperatorsshortcircuit.html)와 요소 와이즈 연산자'&'와'|'[여기] (http : /www.mathworks.co.uk/help/techdoc/ref/logicaloperatorselementwise.html). – Chris

답변

5

스칼라 부울 조건의 경우 &&을 사용하는 것이 좋습니다. 단락은 첫 번째 조건이 거짓 인 경우 인 경우 두 번째 조건이 평가되지 않는다는 것을 의미하지만 그 결과가 어쨌든 거짓임을 의미합니다. & 또는 && 중 하나는 표현식의 양쪽이 모두 참인 경우에만 true이지만, 피연산자 중 하나가 행렬이면 &은 행렬 결과를 반환 할 수 있습니다.

또한, 나는 (과제)가 아니라 ==으로 Matlab 비교를해야한다고 생각합니다.

+0

아, 팁 주셔서 감사합니다! – CaptainProg

+0

덧붙여 말하자면, 왜 AND 회로가 단락 되길 바라지 않습니까? 모든 조건이 참이라면 사실 일 것입니다. 첫 번째 조건이 평가되고 거짓으로 밝혀지면 더 많은 것을 평가하는 것이 처리 능력의 낭비 일뿐입니다. – CaptainProg

+0

@CaptainProg 때로는 부작용에 대한 함수를 평가하고 싶습니다 – sverre