We will find a way. We always have.

고려대학교에서 인공지능과 금융공학을 연구하고 있는 어느 대학원생의 블로그입니다.

프로그래밍 언어(Programming Language)/매트랩(MATLAB)

[MATLAB] 4강 - 조건문

MinsukSung 2020. 10. 23. 17:20

여기에서 정리하는 모든 내용은 고려대학교 문인식 교수님의 '뇌공학프로그래밍입문(INTRODUCTION TO PROGRAMMING FOR BRAIN AND COGNITIVE ENGINEERING)' 강의록을 정리한 내용입니다. 해당 내용에 대한 모든 저작권은 문인식 교수님께 있음을 확인하시길 바랍니다.


지난 시간까지는 매트랩(MATLAB)에서의 입력과 출력을 간단하게 배워봤습니다. 이번 시간에서는 프로그래밍에서 가장 중요하다고 말할 수 있는 조건문을 알아보도록 하겠습니다. 

 

 

3강 - 입력과 출력

여기에서 정리하는 모든 내용은고려대학교 문인식 교수님의 '뇌공학프로그래밍입문(INTRODUCTION TO PROGRAMMING FOR BRAIN AND COGNITIVE ENGINEERING)' 강의록을 정리한 내용입니다. 해당 내용에 대한 모든 저작

minsuksung-ai.tistory.com


IF STATEMENT

조건문은 말 그대로 조건이 참일 경우, 참에 해당하는 부분을 실행하라는 명령어입니다. 그럼 MATLAB에서는 조건문을 어떻게 사용할까요? 아래와 같은 문법으로 IF문을 사용할 수 있습니다. 다른 언어와 비교해서 주의할 점은 IF문 마지막에 end라는 예약어가 붙는다는 점입니다. 

 

if 𝑐𝑜𝑛𝑑𝑖𝑡𝑖𝑜𝑛
    𝑎𝑐𝑡𝑖𝑜𝑛
end

 


IF-ELSE STATEMENT

조건이 2개일 경우, 특히 YES/NO와 같은 조건일 경우에는 어떻게 해야할까요? IF-ELSE 문을 사용하면 됩니다. 그러면 해당 조건에 참일 경우에는 실행하지 그렇지 않을 경우에는 else문을 실행하면 됩니다. MATLAB에서는 아래와 같은 문법으로 사용할 수 있습니다. IF문과 동일하게 end로 꼭 마무리해주어야 합니다.

if 𝑐𝑜𝑛𝑑𝑖𝑡𝑖𝑜𝑛
    𝑎𝑐𝑡𝑖𝑜𝑛1 % if clause
else
    𝑎𝑐𝑡𝑖𝑜𝑛2 % else clause
end

ELSE-IF STATEMENT

조건이 3개일 경우에는 어떻게 해야할까요? 그럴 경우에는 elseif 절을 추가해서 조건을 구성할 수 있습니다. 조건의 수가 많아질수록 elseif 절도 많아집니다. 여기까지 조건문은 elseif 까지만 추가하고 다음 switch문으로 넘어가도록 하겠습니다.

 

if 𝑐𝑜𝑛𝑑𝑖𝑡𝑖𝑜𝑛1
    𝑎𝑐𝑡𝑖𝑜𝑛1
elseif 𝑐𝑜𝑛𝑑𝑖𝑡𝑖𝑜𝑛2
    𝑎𝑐𝑡𝑖𝑜𝑛2
elseif 𝑐𝑜𝑛𝑑𝑖𝑡𝑖𝑜𝑛3
    𝑎𝑐𝑡𝑖𝑜𝑛3
else % optional
    𝑎𝑐𝑡𝑖𝑜𝑛
end

 

위의 조건문들을 이용해서 아래와 같은 예제를 만들 수 있습니다. 한번 확인해보시죠.

 

if quiz < 0 || quiz > 10 % error-check
	grade = 'X';
elseif quiz == 9 || quiz == 10
	grade = 'A';
elseif quiz == 8
	grade = 'B';
elseif quiz == 7
	grade = 'C';
elseif quiz == 6
	grade = 'D';
else
	grade = 'F';
end

 

SWITCH STATEMENT

switch문은 사실 if-elseif-else 문과 비슷한 역할을 할 수 있습니다. switch문은 사실 실제 코딩에서는 그렇게 많이 쓰지 않는 문법이니 일단 가볍게 소개만 하고 넘어가도록 하겠습니다. (그러한 이유는 switch문을 충분히 if문으로 대체할 수 있기 때문입니다. 하지만 명시적으로 코딩할 경우에는 switch 문이 더 명확해서 가끔 사용하긴 합니다.)

 

switch 𝑠𝑤𝑖𝑡𝑐ℎ_𝑒𝑥𝑝𝑟𝑒𝑠𝑠𝑖𝑜𝑛
    case 𝑐𝑎𝑠𝑒𝑒𝑥𝑝1
        𝑎𝑐𝑡𝑖𝑜𝑛1
    case 𝑐𝑎𝑠𝑒𝑒𝑥𝑝2
        𝑎𝑐𝑡𝑖𝑜𝑛2
    case 𝑐𝑎𝑠𝑒𝑒𝑥𝑝3
        𝑎𝑐𝑡𝑖𝑜𝑛3
    otherwise
        𝑎𝑐𝑡𝑖𝑜𝑛𝑛
end

 

간단하게 예제를 한번 돌려보시길 바랍니다.

 

if quiz < 0 || quiz > 10 % error-check
	grade = 'X';
else
  switch quiz
    case {10, 9} % 10 or 9
    	grade = 'A';
    case 8
    	grade = 'B';
    case 7
    	grade = 'C';
    case 6
    	grade = 'D';
    otherwise
    	grade = 'F';
  end
end

“IS” FUNCTIONS IN MATLAB

MATLAB에서 제공하는 함수 중에는 IS로 시작하는 함수들이 있습니다. 예를 들면 isequal 함수, isletter 함수 혹은 isempty 함수가 그 예시입니다. 한번 간단하게 살펴보시죠. 이러한 함수들은 조건문에서의 조건 그 자체로 들어갈 수 있기 때문에 자주 활용되곤 합니다.

 


참고자료

 

 

조건이 true인 경우 명령문 실행 - MATLAB if elseif else - MathWorks 한국

표현식은 관계 연산자(예: < 또는 ==)와 논리 연산자(예: &&, || 또는 ~)를 포함할 수 있습니다. 논리 연산자 and와 or를 사용하여 복합형(Compound) 표현식을 생성합니다. MATLAB®은 연산자 우선 순위 규칙

kr.mathworks.com

 

 

조건문 - MATLAB & Simulink - MathWorks 한국

다음 MATLAB 명령에 해당하는 링크를 클릭했습니다. 명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.

kr.mathworks.com