본문 바로가기
Embedded SW/Control Theory

매트랩 기초 연습 (행렬 연산, 데이터 나누기, 그래프 그리기)

by 방구석 임베디드 2022. 9. 20.
반응형

우선 매트랩에 대한 기본적인 사용방법을 숙지하는것이 필요합니다.

매트랩은 행렬을 기반으로 합니다.

창에 다음과 같이 행렬을 기입했다고 가정해 보겠습니다.

matrix = [1 2 3 ; 4 5 6; 7 8 9];

이것은 3행 3열을 의미합니다.

즉,  아래와 같은 행렬이 나오게 됩니다.

1 2 3

4 5 6

7 8 9

따라서 아래와 같이 창에 다시 matrix를 기입하면

아래와 같은 행렬이 나오게 됩니다.

 

여기서 x1 = matrix(1,:);

이라고 치게 되면

x1은 1행의 모든 열을 가진다는 뜻이 됩니다.

따라서 x1은 아래와 같은 행렬을 가지게 됩니다.

한번 쳐볼까요?

x2는

x2 = matrix(2,:);

2행의 값을을 가질 것입니다.

y1 = matirx(:,1);

그러면 y1은 1열의 모든행을 가지게 될것입니다.

또한 s_matrix 를 아래와 같이 선언한다면

s_matrix = matrix(2:3,2:3);

matirx의 위의 파랑색 부분이 잘라서 들어가게 될것입니다.

매트랩은 행렬기반으로 이루어져 있습니다.

물론 그래프도 행렬기반으로 이루어져 동작하게 됩니다.

따라서 이렇게 행렬 데이터를 기본적으로 다룰수 있는 능력은 꼭 필요합니다.

 

먼저 우리가 제어를 이해하기 위해서는 

데이터를 그래프화 하는 것이 필요합니다.

 

그러면 조금만 더 진도를 나가 보도록 하겠습니다.

한번 cos 그래프를 한번 그려보도록 하겠습니다.

창에 아래와 같이 한번 데이터를 쳐 보시기 바랍니다.

그러면 아래와 같은 cos 그래프가 나오게 될 것입니다.

결국 이 그래프를 그리기 위해서는 

명령어의 집합이 필요한 것을 알 수 있습니다.

그러면 이 명령어를 한번에 실행하는 스크립트를 만들어 보도록 하겠습니다.

아래에서 '빈 스크립트'를 한번 눌러주세요.

그러면 한번 스크랩트를 만들어 보도록 하겠습니다.

아래와 같이 스크랩트를 한번 치고 실행을 누르니까

아래 오른쪽과 같이 그림이 그려지는 것을 확인하실 수 있습니다.

여기서 t = 0.01 : 0.01 : 3;

의 의미는

t의 데이터를 0.01일부터 0.01간격으로 3까지 데이터를 만들자는 뜻입니다.

만일 0 : 1 : 3 이라고 치면

아래와 같이 

0부터 1간격으로 3까지 행렬이 나오게 되겠죠?

결국 시간축을 만들기 위한 행렬 데이터라는 것을 알 수 있습니다.

 

이제 우리는 행렬 데이터를 만드는 법

그래프를 그리는법

그래프를 그리는 과정에서 명령어들을 쭉 실행시키기 위해 스크랩트를 작성하는 법

이렇게 3가지를 배웠습니다.

위에서 clear 명령어는 스크립트를 돌리면서 생성된 모든 변수, 행렬 데이터를 제거하는 것을 의미합니다.

매트랩 명령어 창을 깨끗이 하는것을 의미합니다.

close all은 모든 plot을 닫는것을 의미합니다.

clc는 모든 명령어들을 지우는것을 의미합니다.

 

그리고 그림을 그리는 과정에서 hold on은 그림을 그대로 겹쳐서 그리겠다는 것을 의미합니다.

또한 gird on은 그래프에 간격 표시가 들어가게 한것이고

set 명령어는 그래프를 조금더 효율적으로 그리기위한 옵션 명령어라고 생각하시면 됩니다.

 

더 좋은 옵션들이 많이 있기 때문에 위의 예제는 참고용으로 쓰시면 좋을 것 같습니다.

반응형

댓글