강좌 순서

1. MATLAB 각 Window 사용법 [바로가기]
2. M-File을 사용한 기초연산법 및 데이터의 그래픽 출력 [바로가기]
3. 데이터의 3D 출력 [바로가기]
4. 조건문 및 반복문의 사용. 에러대비 [바로가기]
5. Simulink의 기초 [바로가기]
6. Simulink의 기초 2 [바로가기]
7.  Function 문의 사용 [바로가기]
8. 동역학 시뮬레이션하기 [바로가기]
9. 애니메이션 구현하기 [바로가기]
10. 애니메이션을 이용한 동역학 시뮬레이션하기 [바로가기]
11. LQR 툴박스를 사용하여 제어기 구현하기 [바로가기]
12. GUI 시작하기 - Static, Edit Text 및 Push Button [바로가기]
13. GUI - Slider 사용하기 [바로가기]
14. GUI - List Box와 Pop-up Menu [바로가기]
15. GUI - Check Box와 Radio Button [바로가기]
16. GUI - 종합 예제 [바로가기]

본 강좌에 사용되는 MATLAB은 버젼 7.9.0 (R2009b)을 대상으로 합니다.






   콜론( : ) 연산자 !  
 


위에서처럼 1:5라고 명령을 주면 1부터 5까지 1간격으로 ans라는 변수에 저장이 됩니다.이때 콜론(:)이 하나만 들어가면 자동으로 1간격으로 잡아주게 됩니다.


위에서 처럼
1:
1:0.5:2라고 하면 1부터 0.5간격으로 2까지 잡게 됩니다.




   행렬 만들기 !  
 

MATLAB에서 행렬을 만들때, 세미콜론(;)이 행구분이 됩니다.

 
위에서 처럼 명령을 주면 3*3크기의 행렬이 만들어 집니다. 콤마(,)는 열구분에서 사용되는데 안써도 되지만, 보기 편하기 구분을 주기 위해서라면


으로 명령해도 같은 결과가 나타납니다.

 
만약 행렬을 만들때, 행이 너무 길어서 구분짓기 어렵다면 위에서처럼 엔터키로 구분할도 있습니다. 하지만, 세미콜론(;)으로 행구분을 하는게 좋습니다. (습관적으로..^^)


이렇게 말이지요.




   Dot( . ) 연산 !  
 


위 결과를 한번 보죠. A라는 변수에 콜론 연산을 통해서 1부터 5까지를 저장합니다. 이런걸 행벡터라고도 하는데, 그냥 큰 범위로 1*5의 크기를 가지는 행렬이라고 하죠. B도 같은 크기의 행렬을 지정했습니다. 그러면, A와 B 행렬을 곱하면 (고등학교 수학으로 돌아가 기억을 더듬어보면) 곱할 수 없습니다. 그러니 에러가 나죠.


그러면, 굳이 곱하고 싶다면, A행렬과 B행렬의 전치(transpose)행렬을 곱해주면 됩니다. 그러면 위와 같은 결과가 나오겠지요. 그런데, 제 목적이 만약 A행렬의 첫 요소와 B행렬의 첫 요소를 곱하고, 두번째들끼리 곱하고 하는 것만 하는 거라면...


위와 같이 DOT( . )연산자를 사용하면 됩니다. dot 연산은 요소별로 계산을 해줍니다.




   Plot 명령을 이용한 그래픽 출력 !  
 


위 명령에서 t에는 0부터 2pi까지 0.01간격의 숫자들을 저장합니다. 그리고, y라는 변수에는 sin(t)를 지정했네요. 그러면, t는 1*629의 크기를 가지는 행렬이고, y도 같은 크기를 가지는 행렬이 됩니다. 그리고 plot명령으로 그래프를 그릴 수 있는데, 일단 가장 간단히 그리는 법은 

plot(X축데이터, Y축데이터)

라고 입력해주는 것입니다. 여기서는 X축은 t가 되고, Y축은 y값이 될것이죠.


위 그림이 실행결과입니다. 좀 심심하죠?^^


이제 격자 기준선들을 넣어보죠.
grid라는 명령입니다. grid on이라고 명령을 주면


이렇게 기준선이 나타납니다. 


또, 각 축에 label을 달아보겠습니다. 각 축에 라벨을 다는 명령어는  xlabelylabel입니다. 위와 같이 입력을 하면


이렇게 나타납니다. title이라는 명령을 이용하면 그래프의 제목을 달아줄 수도 있습니다. 


이렇게 해주면

 
이렇게 되죠. 이제

 
y1=cos(t)라고 하고, y1을 겹쳐서 그려보겠습니다. 속성에서 겹쳐그리기를 허용하는 것이 hold on 이라는 명령입니다. 그리고, 같은 색으로 그리면 좀 그러니 빨간색으로 그려보도록 하죠. 위와 같이 추가로 다시 입력하면

 
으로 나타납니다. 그런데,  그래프가 축에 꽉차서 좀 보기가 그렇네요. 그래서 축의 범위를 좀 수정해야겠습니다.  그 명령어가 axis 명령입니다.


axis 명령은 x축의 최소, 최대, 다음으로 y축의 최소, 최대값을 입력하면 됩니다. x축은 0부터 2pi까지, y축은 좀 여유를 두기 위해 -1.5부터 1.5까지로 설정하죠. 그러면


으로 나타납니다. 좀 보기 편하죠. 다음으로 각 선의 역활에 설명을 달아줘야겠네요. 이때 사용하는 명령어가
legend입니다. 


이렇게 입력해두죠. 그린 순서대로 달아주면 됩니다.


이렇게 그림이 나타납니다. 



다양한 설정들은 다시 이야기하고, 좀 더 편하게 설정하는 방법을 보면


저 figure창에서 표시된 부분의 아이콘을 누르면


와 같이 창이 변경됩니다. 그러면, 파랑색선을 클릭하고


이렇게 각종 설정을 바꿔줄 수 있습니다. 위에서는 굵기를 바꾸었네요.


그리고 위에 표시된 아이콘을 누르면 원래대로 돌아갑니다. 그런데 혹시 느끼셨나 모르겠는데 이번글의 포스팅에서 나타나는 그래프들이 꽤 모양이 깔끔하죠?^^. 단순히 화면 캡쳐를 한것이 아닙니다. Figure창이 지원하는 Copy기능을 사용한 것이죠. Figure창에서 Edit 메뉴에서 Copy Figure를 선택하고


붙여넣기를 하면


이렇게 깔끔한 그래프가 나타납니다.^^


http://pinkwink.kr/trackback/266 관련글 쓰기

댓글을 달아 주세요

  1. 분홍별장미 2010/03/04 13:02  댓글주소  수정/삭제  댓글쓰기

    으....... ㅠ.ㅠ 두통약이 필요한 글이네요.. 죄송합니다 (--)(__)
    따로 드릴말씀이 없네요 ㅠ.ㅠ

    • PinkWink 2010/03/04 13:11  댓글주소  수정/삭제

      저런... 꼭 댓글을 안달아놓으셔도 되는건데
      (이건 수업자료라서....^^)
      그래도 재미있지 않나요?^^

  2. 탐진강 2010/03/07 20:12  댓글주소  수정/삭제  댓글쓰기

    10가지 강좌 중 두번째군요.
    대단하시네요. 10가지나 준비하다니.

  3. 2010/03/09 02:16  댓글주소  수정/삭제  댓글쓰기

    너무 잘봤습니다... 과제하는데 도움이 될것 같아요 감사해요..
    다음자료는 언제 또 올라오나요?^^

    • PinkWink 2010/03/09 03:26  댓글주소  수정/삭제

      다음자료를 올리고 이 댓글을 확인했네요^^
      아마 일주일에 두세개정도가 목표인데요. 잘될지는 의문입니다.^^

  4. 심심한아이 2010/03/13 19:18  댓글주소  수정/삭제  댓글쓰기

    우왁!!!! 이렇게나 설명을 잘해주시다니ㅠㅠ 감사합니다~

    거기다 최신버전으로!!ㅎㅎ 열심히 공부하겠습니다~

    기대할게요~!!!

  5. 걸음마전뜀박질 2010/03/16 00:49  댓글주소  수정/삭제  댓글쓰기

    저희 학교에서도 matlab하는데 기초는 안가르쳐줘서...
    이렇게 유용하게 공부하고 있습니다......
    앞으로 계속 기대하고 있을게요~~~ㅎㅎ

  6. 맥스 2010/03/27 00:52  댓글주소  수정/삭제  댓글쓰기

    정말 누가 가르쳐주는 사람없는데
    이블로그는 혼자 공부하는 사람에게 너무나 큰 도움이 되는 곳이네요
    감사합니다 수고하세요~

  7. dy 2010/04/14 11:26  댓글주소  수정/삭제  댓글쓰기

    시험준비하는데도움이되네요 감사합니다^^

  8. sp 2010/05/05 10:32  댓글주소  수정/삭제  댓글쓰기

    설명정말 자세하고 과제하는데 도움이 많이되네요
    좋은자료 정말감사합니다.^^

  9. 질문! 2010/05/06 19:21  댓글주소  수정/삭제  댓글쓰기

    저 그림 그대로. 4pi 까지 만들어야하는데 그대로 쓴후, 2*pi 를 4*pi로 고쳐도 x축은 12.?? 까지 있는데 그래프는 2*pi 에서 끊겨있네요.. 어떻게해야하죠? 그리고, tan(x),e^x,ln(x) ,y=sinx+sin2x+sin3x+sin4x+sin5x+sin6x 도 위와같은 식처럼 하면되나요?

    • PinkWink 2010/05/07 10:17  댓글주소  수정/삭제

      axis 명령에서도 4pi라고 변경되었는지 확인해주세요..
      그리고, 어떤 수식이든 위 포스팅처럼 뭐 하시면 될 것입니다만, 곱하기가 들어가는 경우 행렬의 곱셈으로 수행할 위험이 있으므로, dot(,) 연산을 하시길 바랍니다. *가 아니라 .*^^

  10. 감사합니다. 2010/05/20 20:59  댓글주소  수정/삭제  댓글쓰기

    매트렙 처음쓰는데 참 도움이 많이되네요^^
    보통 댓글 잘 안쓰는데 너무 잘 해주셔서
    감사한 마음을 표현안할수가 없네요 ㅎㅎ
    감사합니다.

    • PinkWink 2010/05/20 21:30  댓글주소  수정/삭제

      많은 도움이 되었다니 저 역시 기분이 좋습니다...
      계속 많은 기능을 소개하도록 해보겠습니다.^^

  11. 우와 2010/08/20 14:23  댓글주소  수정/삭제  댓글쓰기

    너무 좋은데요
    제가 잘 몰라서요..
    plot(t, y) 을 해준후에 grid on 을 하면 그래프는 없어지고 격자만 생겨요
    마찬가지로 xlabel을 하면 격자는 없어지고 x축 라벨만 생기구요 ylabel을 하면 xlabel과 격자 다 없어지고 y축라벨만 생기는 이런식이네요
    왜 그런거죠?

  12. 엘리 2010/08/21 00:36  댓글주소  수정/삭제  댓글쓰기

    혹시 이 자료로 스터디를 하려고 하는 사용 해도될가요??
    메트랩 기초부터 차분히하려고 합니다 ^^
    좋은주말보내세요~