여기에서 정리하는 모든 내용은 고려대학교 문인식 교수님의 '뇌공학프로그래밍입문(INTRODUCTION TO PROGRAMMING FOR BRAIN AND COGNITIVE ENGINEERING)' 강의록을 정리한 내용입니다. 해당 내용에 대한 모든 저작권은 문인식 교수님께 있음을 확인하시길 바랍니다.
지난 시간까지는 매트랩(MATLAB)에서의 입력과 출력을 간단하게 배워봤습니다. 이번 시간에서는 프로그래밍에서 가장 중요하다고 말할 수 있는 조건문을 알아보도록 하겠습니다.
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 함수가 그 예시입니다. 한번 간단하게 살펴보시죠. 이러한 함수들은 조건문에서의 조건 그 자체로 들어갈 수 있기 때문에 자주 활용되곤 합니다.
참고자료
'프로그래밍 언어(Programming Language) > 매트랩(MATLAB)' 카테고리의 다른 글
[MATLAB] 6강 - 사용자 정의 함수 (0) | 2020.10.28 |
---|---|
[MATLAB] 5강 - 반복문 (0) | 2020.10.27 |
[MATLAB] 3강 - 입력과 출력 (0) | 2020.10.23 |
[MATLAB] 2강 - 벡터와 행렬 (0) | 2020.10.19 |
[MATLAB] 1강 - 설치 및 기초 문법 (0) | 2020.10.17 |