이 글은 MATLAB에서 제공하는 자기주도형 온라인 교육과정 "MATLAB Onramp"를 수료한 후 교육자료를 바탕으로 포스팅한 글입니다.
MATLAB Onramp
MATLAB Onramp는 MATLAB에서 제공하는 자기 주도형 온라인 교육과정으로 MATLAB의 기본 구문과 데스크탑 관리 방법, 행렬 연산과 플로팅 등 기본적인 사항들을 자기주도적으로 학습할 수 있습니다.
Review
1. 기본구문
| 예제 | 설명 |
|---|
| x=pi | 등호를 사용하여 변수를 만들 수 있으며, 좌변값은 우변 값을 포함하는 변수의 이름에 해당합니다. |
| y=tan(pi/2) | 괄호를 사용하여 함수에 입력값을 전달할 수 있습니다. |
2. 데스크탑 관리
| 함수 | 예제 | 설명 |
|---|
| save | save data.mat | 현재 작업 공간을 저장합니다. |
| load | load data.mat | 저장한 작업 공간을 불러옵니다. |
| clear | clear | 현재 작업 중인 작업 공간을 비웁니다. |
| clc | clc | 명령 창에 기록한 모든 text를 제거합니다. |
3. 벡터와 행렬
| 예제 | 설명 |
|---|
| 2 | 스칼라 |
| [4 5] | 행 벡터 |
| [4;5] | 열 벡터 |
| [1 2 3;4 5 6] | 행렬 |
행렬의 행을 구분하기 위해서는 세미콜론(;)을 사용합니다.
4. 콜론(:)연산자를 활용한 벡터
| 예제 | 결과 | 설명 |
|---|
| 1:5 | [1 2 3 4 5] | 콜론(:)연산자를 활용하여 1에서 5까지 간격이 1인 요소로 구성된 행 벡터를 생성합니다. |
| 1:2:9 | [1 3 5 7 9] | 1에서 9까지 간격이 2인 행 벡터를 생성할 수 있습니다. |
| ([1 2 3])' | [1;2;3] | 어퍼스트로피(')를 활용하여 벡터 혹은 행렬의 전치(transition)를 만들 수 있습니다. |
| linspace(1,10,4) | [1 4 7 10] | linspace함수를 활용하면 1에서 10까지 4개의 스탭 요소로 구성된 벡터를 만들 수 있습니다. |
5. 행렬 만들기
| 예제 | 설명 |
|---|
| rand | rand는 (0,1) 범위의 균등 분포(Uniform Distribution)에서 난수 스칼라를 반환합니다. |
| zeros | zero는 스칼라 0을 반환합니다. |
| rand(x) | x개의 행과 열을 가진 난수 스칼라를 요소로 갖는 정사각행렬을 만듭니다. |
| rand(x,y) | x개의 행과 y개의 열을 가진 정사각행렬을 만듭니다. |
| zeros(x) | x개의 행과 열을 가진 스칼라 0을 요소로 갖는 정사각행렬을 만듭니다. |
6. 인덱싱
| 예제 | 설명 |
|---|
| A(x,y) | 행렬 A의 x번째 행, y번째 열에 해당하는 요소를 인덱싱합니다. |
| A(x,:) | 행렬 A의 x번째 행을 인덱싱할 수 있습니다. |
| A(:,y) | 행렬 A의 y번째 열을 인덱싱할 수 있습니다. |
| A(1:3,:) | 행렬 A의 1~3번째 행을 인덱싱할 수 있습니다. |
| A(x,y) = 5 | 행렬 A의 x번째 행, y번째 열에 해당하는 요소 값을 5로 변경합니다. |
7. 배열 연산
| 예제 | 설명 |
|---|
| A * B | 행렬 A와 행렬 B의 행렬곱을 계산합니다. |
| A .* B | 행렬 A와 행렬 B 각각의 요소별 곱셈을 계산합니다. |
8. size, max, min 함수
| 예제 | 설명 |
|---|
| [xrow,xcol] = size(A) | 행렬 A의 행 개수와 열 개수를 두 변수에 저장합니다. |
| [xMax,idx] = max(A) | 행렬 A의 요소 중 값이 가장 큰 값과 그 값의 인덱스를 두 변수에 저장합니다. |
- 행렬 A에서의 max값이 2개 이상이라면 index가 가장 작은 값을 기준으로 idx에 저장합니다.
- 만일 행렬 A의 size가 (4 5)라면, size가 4인 5개의 column로 이루어져 있으므로 xMax값과 idx값은 (15) size의 vector로 반환되며 각각의 값은 해당 column vector에 대해 Max값과 Max값의 index(즉, 몇 행에 Maxr값이 존재하는가)를 반환합니다.
9. 도움말 문서

MATLAB 사용 중 잘 모르는 함수가 있다면 우측 상단의 도움말 검색창을 활용할 수 있습니다.
이는 명령 창에서 doc함수를 이용해서도 검색할 수 있습니다. doc함수를 이용한다면 검색 시간이 단축될 수 있습니다.
| 예제 | 설명 |
|---|
| doc functionName | 도움말 문서에서 functionName이라는 함수를 검색할 수 있습니다. |
10. Plotting
| 예제 | 설명 |
|---|
| plot(x,y,"ro-","LineWidth",3) | x에 대한 y값을 플로팅할 수 있습니다. 선 사양에 대한 문서를 참고하면 ro-와 같이 마커 모양과 색깔, 선의 유형을 설정할 수 있습니다. LineWidth를 활용하여 선의 굵기을 설정할 수 있습니다. |
| hold on | 기존 플롯에 플로팅할 수 있습니다. 다양한 값들을 플로팅하여 비교할 때 활용합니다. |
| hold off | 기존 플롯에 플로팅을 멈추고 새로운 플롯에 플로팅합니다. |
| title("Title") | 제목에 관한 레이블을 플롯에 추가합니다. |
| xlabel("Xlabel") | x축에 해당하는 레이블을 플롯에 추가합니다. |
| ylabel("Ylabel") | y축에 해당하는 레이블을 플롯에 추가합니다. |
11. 행렬에서의 논리연산
| 예제 | 설명 |
|---|
| [3 5 10] > 12 | 행렬 각각의 요소값을 12와 비교한 결과(0,1)로 구성된 행렬을 반환합니다. |
| v1(v1<5) | v1에서 5보다 작은 요소 요소를 추출합니다. |
| v2(v1>10) | v1에서 10보다 작은 요소의 인덱스 자리에 해당하는 행렬 v2의 요소를 추출합니다. |
| x(x==10) = 1 | 행렬 x에서 요소가 10인 값을 모두 1로 변환합니다. |
12. 조건문과 반복문
Reference : https://matlabacademy.mathworks.com/kr/details/matlab-onramp/gettingstarted