회원가입 ID/PW 찾기

1) 지식 창고는 본인이 작성한 콘텐츠(팁/노하우/리소스/강좌 등)을 무료 혹은 가상화폐인 납포인트를 통해 공유하는 공간입니다.
2) 본인이 작성한 콘텐츠에 대해서만 지식 창고에 등록할 수 있으며, 저작권에 위배되는 콘텐츠는 사전경고 없이 삭제될 수 있습니다.
3) 콘텐츠 구매 및 첨부파일 다운로드는 회원그룹 '연구원' 이상 가능하오니, 경험치를 쌓아 진급한 후에 이용 부탁드립니다.
4) 무료 콘텐츠의 본문은 구매절차 없이 즉시 이용할 수 있으며, 판매 납포인트가 있는 콘텐츠는 구매 후 이용할 수 있습니다.
5) 콘텐츠 판매에 따른 납포인트 수익은 지정한 비율(50%)에 따라 판매자에게 지급하며, 납포인트 수익을 통해 진급을 빨리할 수 있습니다.
6) 구매 후 평가를 하면 구매 납포인트의 20%를 돌려 드립니다.

콘텐츠 수 69
판매자 뺘쑝 판매 납포인트 무료 평점 0점 / 총 0명 참여
MATLAB 완벽가이드







저자 : 임종수
이 문서는 한글97로 제작되었습니다. 하지만 도스용 한글3.0부터 윈도우용 한글97까지 완벽히 지원됩니다. 만약 그림부분이 나타나지 않는다면 RAM이 얼만큼인지 보시기 바랍니다. RAM용량이 적으면 나타나지 않을 수 있습니다. 또한 이 글을 보시게 될 분의 글꼴이 어떤지 모르기에 가장 기본이 되는 글꼴만 이용했음을 미리 알려드립니다.
기타 문의 사항이나 더욱더 알고 싶으신분은 다음의 연락처 혹은 홈페이지에 방문하시기 바랍니다.하이텔 : ssljk07 나우누리 : jedtor(친구아이디)
천리안 : ssxljk 유 니 텔 : ssljk07
E-mail : matlab@loveangel.net
http://www.loveangel.net



머리말
이제부터 21일간 Matlab에 대해 강의를 할 임종수라고 합니다.

저는 현재 건국대학교 전자공학과 대학원생입니다. 여러 해 동안 Matlab을 공부해 왔으며, 헤아릴 수 없는 관련 프로그램을 작성해 본 경험과 지식을 토대로 여러분에게 조금이나마 도움이 되고자 하여 이렇게 붓을 들게 되었습니다.
앞으로, 전개해 나갈 내용은 Matlab4.0 ~ 5.1까지에 대한 내용인데, 주로 Matlab5.1에 기준을 두고 강의를 하려고 합니다. 그러나, 대부분의 학생들이 Matlab4.2c이하 버전을 가지고 있는 경우를 고려하여, 내용 전개 중에 버전사이의 차이가 있는 경우 이점을 밝힐 것입니다. 이 내용의 대상은 대학생은 물론, 고등학생도 쉽게 배울 수 있고, 이해할 수 있는 내용입니다.

앞으로, 매일 A4용지 5장 정도로 해서 Matlab의 기본을 습득하기에 충분한 내용을 전개해 나갈 것입니다. 또한, 지금 현재 「Matlab 완벽가이드」 란 제목으로 책을 만들고 있습니다. 발송은 3월 첫주 6일이나 7일에 합니다. 주문과 자세한 사항은 맨 아랫장을 참조해 주시기 바랍니다.


기호 표시와 뜻중요사항메모주의사항새로운 기능알리는 글용어해설


출력하실 경우엔 다음쪽부터 하십시오. 번호를 이어갈 수 있습니다.

라. High_level functions.

High_level functions에 속하는 그래픽 함수들은 일반적으로 데이터를 화면에 display하기 위해 사용되는 함수들이다.
상당히 많은 종류의 그래픽 함수들이 존재하는 데, 이들 함수들은 Low_level functions처럼 데이터를 display하는데, 필요한 여러 가지 propertyname /propertyvalue를 묻지 않고, 자동으로 좌표의 크기 조절(axis scaling)과 선의 색(Line color)등을 설정해준다.

본 단원에서는 그래픽 함수들의 특성에 따라서 3가지 부류로 나누어 이들 그래픽 함수들을 다루고자 한다.

1. 다음과 같은 대표적인 그래픽 함수들을 설명하겠다.
"plot.m, plot3.m, contour.m, contour3.m, contourf.m, clabel.m, stem.m, stem3.m, stairs.m, compass.m, feather.m, comet.m, comet3.m,scatter.m, scatter3.m, polar.m, rose.m, "

2. 다음과 같은 대표적인 3 차원 그래픽 함수들을 설명하겠다.
"surf.m, surfc.m, mesh.m, meshc.m, meshz.m, view.m, meshgrid.m, colormap.m, colorbar.m"

3. 그 밖의 유용한 그래픽 함수들을 설명하겠다.
"pie.m, pie3.m, bar.m, barh.m, bar3.m, bar3h.m, area.m, errobar.m, ezplot.m"

그밖에도 하나의 그래프를 완성하는데 필요한, "legend.m, subplot.m, 등등"의 설명도 첨부해 나갈 것이다. 그러나, 모든 함수들을 자세히 설명하지는 않을 것이다. 몇몇 대표적인 함수들만 자세히 강의하고, 나머지는 그 사용법만 간단히 답습해나가는 식으로 하겠다.

위에 열거한 그래프 함수들 정도면, 충분히 모든 상황을 표현할 수 있다고 본다.

1. 일반적으로 많이 이용되는 그래픽 함수들 :

가) plot.m : 제 1 부류
지금까지 “plot.m”함수는 많이 이용하여 왔다. 그런데, 이번에는 좀 더 자세히 그 이용법을 알아보겠다.



전형적인 사용법(Syntax) : plot.m
a) plot(Y)
→만일, Y가 실수이면, x축은 Y의 index이고, y축은 Y의 열 벡터들로 →이루어진다. 그러나, Y가 복소수이면, x축은 real(Y), y축은 →imag(Y)로 이루어진다.
b) plot(X1,Y1,...)
→X1의 열 벡터와 Y1의 열 벡터가 각각의 line을 구성한다.
c) plot(X1,Y1,LineSpec,...)
→LineSpec은 color, linestyle, maker로 구성되어 선의 style을 → 결정한다.
d) plot(...,'PropertyName',PropertyValue,...)
→"Line"object에 있는 propertyname/propertyvalue로 선의 style을 →결정한다.
e) h = plot(...)
→여러 개의 Line들이 있는 경우, 각각의 Line에 할당된
→handle value가 열 벡터의 모양으로 반환된다.

□X=[1:10; 0.7*[1:10]; 0.5*[1:10]; 0.25*[1:10])'; ↲
□plot(X) ↲
□xlabel('x axis','fontsize',15) ↲
□ylabel('y axis','fontsize',15) ↲
□title('\bf{''plot.m''함수의 이용법}','fontsize',15) ↲

위와 같은 일련의 명령어를 실행하면 어떻게 그래프가 만들어지겠는가?


[그림 3-18] "plot.m"함수의 이용법

[그림3-18]에서 알 수 있듯이 행렬 X에 대한 각각의 원소들이 Y축을 이루고 있고, 행렬 X에 대한 index가 X축을 이루고 있다.(즉, x=1:length(X))

만일, 여러분이 선(line)들의 색이나 type을 정해주지 않으면, 자동으로 default값에 의해 결정되어 진다.
이들 선들의 색에 대한 default값은 다음과 같은 방법으로 얻을 수 있다.

□Line_Color =get(gca,'colororder') ↲

Line_Color =

0 0 1.0000
0 0.5000 0
1.0000 0 0
0 0.7500 0.7500
0.7500 0 0.7500
0.7500 0.7500 0
0.2500 0.2500 0.2500

또한, 선들의 type에 대한 default값은 다음과 같은 방법으로 역시 얻을 수 있다.

□Line_Type =get(gca,'Linestyleorder') ↲

Line_Type =

-

이들 Line_Color 행렬과 Line_Type 벡터의 조합으로 모든 선(Line)들의 style이 결정된다.
결정 방법은 다음과 같다.
(a) Line_Type의 첫 번째 원소와 선들의 색에 대한 행렬인 Line_Color의 모든 색 을 순환하며 각각의 선들을 구성한다.
(b) Line_Type의 두 번째 원소와 선들의 색에 대한 행렬인 Line_Color의 모든 색 을 순환하며 각각의 선들을 구성한다.
......................... 반 복 ......................

그런데, 대부분의 학생들은 컬러 프린터기를 사용하지 못하고 있다고 본다. 그러므로, “plot.m”함수에 의해서 그려지는 선들의 색은 검은 색으로 일정하고 type만 바꾸어 가며 line을 그리기를 원할 것이다. 그러기 위해서는 default값인 “Line_Color, Line_Type 배열의 원소들”을 바꾸어 주어야한다.

□set(0,'DefaultAxesColororder',[0 0 0],'DefaultAxesLineStyleOrder','-|-.|--|:') ↲

위와 같은 명령어를 실행하고, 다시 [그림3-18]을 만드는 일련의 명령어를 똑같이 실행하면 [그림 3-19]와 같은 figure가 만들어 질 것이다.

앞에서 보여준 “set.m”함수는 Root Object에 대한 propertyname/propertyvalue를 조정해주고 있다. Root Object는 최상위의 Level을 갖는 Object이다. 그러므로, matlab을 재 시동할 때까지는 모든 선들의 style이 위에서 결정된 사항을 따르게 된다. 또한, “startup.m”파일 안에 위와 같은 명령어를 삽입하면 matlab을 재실행하여도 선들의 style은 위에서 결정한 모양을 계속 따른다.
단! 윤곽선을 표현하는 “contour.m”함수 부류는 위에서 결정한 선들의 style을 따르지 않는다. 그것은 “contour.m”함수 내부에서 다시 선들의 style을 정의하기 때문이다.



[그림 3-19] 선들의 style에 대한 default값을 변경한 경우

여러분 중에서 데이터를 그래프로 표현하고자 하는 경우, 한쪽 데이터의 범위(range)는 일정한 경계 값으로 고정시키고, 다른 쪽은 데이터의 모든 양을 표현하고 싶을 때가 있을 것이다. 즉, 어느 구간만 보고 싶은 경우가 있을 것이다.
이처럼 어떠한 좌표의 한쪽은 경계치로 고정시키고, 다른 쪽은 모두 표현하고 싶을 때는 “axis.m”함수를 이용하여 보라. 물론, 어떠한 좌표의 양쪽을 일정한 경계치로 고정시킬 수도 있다.
앞에서, Axes object를 배울 때, propertyname 중에서 “xlim, ylim, zlim”에 대해서 학습하였다. 이것과 같은 기능을 하는 함수가 바로 “axis.m”함수이다.

전형적인 사용 방법(syntax) : axis.m
axis([xmin xmax ymin ymax zmin zmax])
→좌표의 범위(range)를 결정해준다.
→2차원 그래프인 경우에는 “zmin zmax”만 빼주면 된다.

□t=-5:1/100:5; ↲
□y=1./((t-0.3).^2+0.01)+1./((t-0.9).^2+0.04)-6; ↲ %y는 humps function.
□plot(t,y) ↲


앞에서와 같은 일련의 명령어를 실행하면, [그림 3-20]을 얻을 수 있다.

[그림 3-20] “axis.m”함수의 사용 예

이제, t축의 범위를 [0 ∞]으로 바꾸고자 한다. 그렇게 하기 위해서는 다음과 같은 명령을 실행하면 된다.

□axis([0 inf -inf inf]) ↲

[그림 3-21]은 t축의 범위를 [0 ∞]으로 바꾼 경우의 그래프이다.

앞에서 배운 Axes Object의 propertyname/propertyvalue를 이용하여 t축의 범위를 [0 ∞]까지 바꾸려면 어떻게 해야 하는가?
필자의 생각으로는 여러분이 충분히 할 수 있다고 본다.

□set(gca,'xlim',[0 inf],'ylim',[-inf inf]) ↲

위와 같은 명령어를 실행하여도 [그림 3-21]이 만들어진다.







[그림 3-21]을 보면 데이터가 0≤ t ≤2 사이에 많이 분포하고 있는 것을 알 수 있다. 그러므로, 0≤ t ≤2 구간에서는 0.4간격마다 tick을 표시하고 싶다. 그러기 위해서는 다음과 같이 한다.

Axes Objectpropertynamepropertyvaluextick, ytick, ztickTick mark를 위치시킬 수치 vector

□set(gca,'xtick',[0:0.4:2 2.5 3 3.5 4 4.5 5]) ↲

결과는 [그림 3-22]에서 볼 수 있다.

결국, “tick”의 위치는 불균등하게 놓을 수 있다.





[그림 3-22] Tick의 위치 변경 방법

그런데, 만일, t축의 ticklabel(즉, 0, 0.4, 0.8 따위)을 수치가 아닌 문자열로 표현하고 싶을 때가 있을 것이다.

Axes Objectpropertynamepropertyvaluexticklabel, yticklabel, zticklabelTick mark의 위치에 놓을 문자열(string)

x(y,z)ticklabel을 이용하는 경우 Tick mark들의 숫자만큼 문자열들이 있어야 한다. 그렇지 않으면 tick의 숫자만큼 문자열을 만들기 위해 다시 같은 문자열들을 사용한다.
[그림 3-22]에서는 t축에 있는 tick의 개수가 12개이다.

□t_label=str2mat('I','II','III','IV','V','VI','VII','VIII','IX','X','XI','XII') ↲
□set(gca,'xticklabel',t_label) ↲

위와 같이 실행하면 [그림3-23]과 같이 xticklabel이 로마숫자표시로 바뀔 것이다.



[그림 3-23] xticklabel의 변경 방법
다음 시간에도 계속해서 High_level function에 대해서 알아보자.
[부 록]과 다음 시간에 배울 High_level graphic functions 중 2, 3부류는 강좌에 올리지 않을 것입니다.
왜냐하면, 책을 구입하는 분들의 권익을 위해서입니다.
이 점 널리 양해해 주실 줄 압니다.
간혹, 제가 만드는 책이 단순히 강좌들을 제본한 것이라고, 생각하시는 분이 계실지 모르는데, 결코 그렇지 않습니다. 강좌의 모든 내용을 다시 제 수정하고, 많은 부분을 첨가하였습니다. 또한, 대형 인쇄소와 계약을 하여 일반 책과 비교해서 손색이 없도록 만들 계획입니다. 그리고, 책과 친숙한 분위기를 조성하기 위해서 각종 클립아트와 여러 가지 효과도 줄 것입니다. 그러므로, 단순히 복사실에서 제본한 책과는 질적으로 다릅니다. 또한, 미국의 여러 학생들이 Matlab을 운용하다가 모르는 부분을 mathwork사에 문의하여 알게된 여러 가지 [질문][대답]내용도 정리하여, 책을 구입한 분들에게 따로 email을 보낼 것입니다.
profile

profile
아끼까꼬 2013.11.11 23:48
감사합니다
profile
우유탄커피 2014.01.27 14:33
coloroder에서 나오는 행렬수치는 무엇을 의미하나요?
profile
시나브로69 2017.06.24 16:10
좋은 자료 감사합니다.
search
List of Articles
번호 분류 제목 평점 포인트 판매자 등록일 구매수 조회 수
공지 공공의 목적으로 공유하고자 하는 소프트웨어는 '소프트웨어 자료실'에 업로드를 요청드립니다.
공지 구매후 평점 댓글을 남겨주시면 구매포인트의 20%를 돌려드립니다.
69 머신러닝, AI & 알고리즘 matlab 쉽게 배우는 방법없나요? [7] 무료 kayle 2013-09-26 0 441
68 머신러닝, AI & 알고리즘 Kalman 필터로 쉽게 센서통합하기 [8] 무료 아크마 2011-08-01 0 2995
67 머신러닝, AI & 알고리즘 매크로 이름에 괄호를 사용하기 [5] 무료 밝은전기구슬 2011-03-28 0 4925
66 머신러닝, AI & 알고리즘 Solving ODEs with MATLAB [3] 무료 HALU13 2010-11-29 0 2155
65 머신러닝, AI & 알고리즘 A Guide to MATLAB Object-Oriented Programming - Andy H. Register [5] 무료 HALU13 2010-11-29 0 2299
64 머신러닝, AI & 알고리즘 매트랩 한글 메뉴얼 입니다. [33] 무료 우당탕카 2010-06-01 0 5727
63 머신러닝, AI & 알고리즘 보간법 매틀랩 코드입니다. 무료 나얼제자 2010-05-25 0 4140
62 머신러닝, AI & 알고리즘 매틀랩 명령어 정리 입니다 [14] 무료 지노쟁이 2010-04-29 0 4648
61 머신러닝, AI & 알고리즘 matlab이 저에게 필요한가요 [5] 무료 딘재 2010-04-16 0 2250
60 머신러닝, AI & 알고리즘 공업수학요약정리4 [10] 무료 알라뷰 2010-03-07 0 2525
59 머신러닝, AI & 알고리즘 공업수학요약정리3 [8] 무료 알라뷰 2010-03-07 0 2483
58 머신러닝, AI & 알고리즘 공업수학요약정리2 [8] 무료 알라뷰 2010-03-07 0 2061
57 머신러닝, AI & 알고리즘 공업수학요약정리1 [12] 무료 알라뷰 2010-03-07 0 3187
56 머신러닝, AI & 알고리즘 proxmity sensing 알고리즘입니다. [2] 무료 퀴아쿠 2010-02-19 0 2047
55 머신러닝, AI & 알고리즘 알고리즘 설계 및 실습 - Huffman & Dijkstra [5] 무료 블루미르7 2010-01-05 0 3471
54 머신러닝, AI & 알고리즘 간단한 비례 공식입니다 ㅎㅎ [2] 무료 karismapong 2009-10-20 0 2648
53 머신러닝, AI & 알고리즘 Euler 미분법[MATLAB] [4] 무료 아크마 2009-10-01 0 4642
52 머신러닝, AI & 알고리즘 Matlab코드를 C코드로 변환할 수 있다는데.. 무료 kezman 2009-09-25 0 4195
51 머신러닝, AI & 알고리즘 MPLAB 컴파일을 했더니 에러가 떠요..ㅠㅠ [2] 무료 로이lee 2009-04-16 0 3969
50 머신러닝, AI & 알고리즘 (MATLAB) S-ALOHA의 Throughput 시뮬레이션 소스 [2] 무료 태상노군 2008-09-23 0 5172
  • 인간은 아직까지도 모든 컴퓨터중에서 가장 훌륭한 컴퓨터이다.
    - 케네디
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.