제어문은 쉽게 말해, 코드의 전반적인 흐름을 결정짓는 구문으로, 세부적으로는 반복문, 조건문 등이 있다.
반복문, 조건문 그리고 논리연산자는 인덱싱만큼이나 MATLAB에서 상당히 중요하다.
그러니 차근차근 기본을 다져보자.
For 문 : 반복문
주어진 조건 하에서 반복 명령을 수행하라!!!!
start부터 end까지 step씩 증가한다. 한 번 step이 증가할 때마다 'for문 안의 내용'이 반복 된다.
for index = start : step : end
반복되는 내용
end
다음 예시를 보도록 하자.
아래 코드는 1부터 10까지 i라는 변수가 (for문을 한 번 돌 때마다) 1씩 커지게끔 하는데, 그때마다 변수 i의 값을 명령창에 출력하도록 하는 것이다. (disp라는 함수는 괄호 안의 내용을 명령창에 출력하도록 하는 기능을 가진다.)
for i = 1:1:10
disp(i);
end
즉, i가 맨 처음에는 1부터 시작한다. 그리고 disp(i)에 의해서 1이 출력된다.
그리고 for문은 반복문이므로 다시 처음으로 되돌아와서 i에는 1이라는 값이 추가되어 i=2가 되고, disp(i)가 다시 한 번 수행된다. 즉, i는 1부터 10까지 1씩 커지는 것을 반복하며, 그때마다 for문 안의 내용을 반복해서 수행한다. 마지막으로 i가 10이 되어 disp(i)에 의해 10이 출력된 후, 해당 for문은 종료된다.
이때 i가 커지는 step은 꼭 1이 아니어도 된다. 물론, 보통은 1이 제일 편해서 1씩 커지게끔 하고, default 값 또한 1이기 때문에 (step 값으로 1을 쓴다는 것을 생략하고) 위 코드는 다음과 같이 코드를 작성해도 동일한 기능을 한다.
for i = 1:10
disp(i);
end
if 문 : 조건문
조건을 부여하고, 조건에 부합할 시 명령을 수행한다.
% 문법 1
if 조건식
조건식이 참일 때 수행될 명령
end
% 문법 2
if 조건식
조건식이 참일 때 수행될 명령
else
조건식이 거짓일 때 수행될 명령
end
% 문법 3
if 조건식1
조건식1이 참일 때 수행될 명령
elseif 조건식2
조건식2가 참일 때 수행될 명령
elseif 조건식3
조건식3이 참일 때 수행될 명령
else
위 조건문 모두 거짓일 때 수행될 명령
end
다음 예시를 보도록 하자.


맨 처음 변수 a는 1을 할당받았다. 그리고 조건문을 살펴보면, a가 10과 동일할 때, 그리고 a가 5와 동일할 때를 물어보고 있다. a는 두 조건문 모두 만족하지 않으므로, else에 있는 명령을 수행한다. 즉, wonderful을 출력하는 것이다.
여기서 '=='과 '='의 차이를 잘 이해해야 한다. MATLAB에서 '='은 지금까지 우리가 사용해왔던 것처럼 '할당'한다는 기능을 가진다. 만약 수학적으로 '동일'하다는 의미로 사용하고 싶다면, 우리는 '=='을 사용해야만 한다.
즉, 위 코드에서 if a==10 이라는 구문은 "a가 10과 동일하냐?"라고 묻고 있는 것이다.
+ 여담으로, 앞에서 사용한 disp함수는 입력인수로 숫자를 넣어서, 숫자를 출력하고자 하였다. 그때는 그냥 disp(i)를 사용하면 되지만, 만약 출력하고자 하는 것이 string, 즉 문자열일 경우에는 위 코드와 같이 대괄호와 따옴표를 사용해야 한다!
break
제어문에서 특정 조건을 만족할 시, 모든 제어문 밖으로 빠져나간다.
Rule
break는 for 루프나 while 루프의 실행을 종료한다. 루프에서 break 문 이후에 나오는 명령문은 실행되지 않는다.
중첩 루프에서 break는 이 명령문이 실행되는 루프만 종료한다.


연산자
논리연산자는 if 조건문이나 Boolean indexing에 자주 사용된다.
논리 연산자
&& : and
|| : or (키보드 상에서 \랑 같이 있는 기호.)
관계 연산자
< , >
<= , >=
== : same
~= : not same
'초급-MATLAB 해양자료처리' 카테고리의 다른 글
MATLAB - Excel 파일 읽기 : 해양 산성화 (0) | 2023.09.16 |
---|---|
MATLAB - Plotting (0) | 2023.09.16 |
MATLAB - 배열 Array (0) | 2023.05.17 |
MATLAB 시작 - 4 : 실습 (0) | 2023.04.25 |
MATLAB 시작 - 3 : 주석 달기 & 퍼블리시 기능 (0) | 2023.04.25 |