회원가입 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%를 돌려드립니다.
49 머신러닝, AI & 알고리즘 크로마키 기법으로 영상을 합성하는 Matlab 소스 [8] 무료 밀랍인형 2008-08-21 0 5410
48 머신러닝, AI & 알고리즘 Matlab code를 c code로 변환하는 툴!! [12] 무료 밀랍인형 2008-08-21 0 4424
47 머신러닝, AI & 알고리즘 Matlab m-file을 C코드로 변환하는 함수 [11] 무료 밀랍인형 2008-08-21 0 7001
46 머신러닝, AI & 알고리즘 A* (길찾기 알고리즘) [9] 무료 rcc 2008-07-07 0 4275
45 머신러닝, AI & 알고리즘 matlab 강의자료 ppt [23] 무료 나도 2008-05-19 0 7430
» 머신러닝, AI & 알고리즘 (MATLAB15) High_level function [3] 무료 뺘쑝 2008-02-04 0 2946
43 머신러닝, AI & 알고리즘 [PDF]수치해석 교재 - Numerical Recipes in C [13] 무료 아크마 2007-12-16 0 5084
42 머신러닝, AI & 알고리즘 (12) matlab matlab이 지원하는 풍부한 그래픽 tool [7] 무료 프리미엄 2007-11-07 0 2225
41 머신러닝, AI & 알고리즘 (11) matlab M-file 작성 시 유용한 함수들(input.m, dialog형 함수, menu.m 등등) [4] 무료 프리미엄 2007-11-07 0 2764
40 머신러닝, AI & 알고리즘 (10) matlab M-file 작성 시 유용한 함수 [2] 무료 프리미엄 2007-11-05 0 1995
39 머신러닝, AI & 알고리즘 (9) matlab 다차원 배열(multidimensional array) [1] 무료 프리미엄 2007-11-05 0 3548
38 머신러닝, AI & 알고리즘 (8) matlab subfunction과 다차원 배열 [2] 무료 프리미엄 2007-11-05 0 2223
37 머신러닝, AI & 알고리즘 (7) matlab 제어문과 debugging요령 [1] 무료 프리미엄 2007-11-04 0 1868
36 머신러닝, AI & 알고리즘 (6) matlab의 M-file이란 무엇인가? [2] 무료 프리미엄 2007-11-04 0 1720
35 머신러닝, AI & 알고리즘 (5) Matlab의 연산자(operators) [1] 무료 프리미엄 2007-11-04 0 2272
34 머신러닝, AI & 알고리즘 (4) Matlab의 행렬의 거듭 제곱 [3] 무료 프리미엄 2007-11-04 0 3597
33 머신러닝, AI & 알고리즘 (3) Matlab의 행렬연산을 전반적으로 정리 [2] 무료 프리미엄 2007-11-04 0 1649
32 머신러닝, AI & 알고리즘 (2) matlab으로 행렬을 다루는 전반적인 내용 [5] 무료 프리미엄 2007-11-04 0 1522
31 머신러닝, AI & 알고리즘 (1) 왜 Matlab을 배워야 하는가? [18] 무료 프리미엄 2007-11-04 0 1891
30 머신러닝, AI & 알고리즘 Java를 이용한 정렬 알고리즘(쉘) [1] 무료 나루 2007-10-11 0 3876
  • 인생에 있어서 제일 큰일은 자신을 발견하는 일이다.
    - 난센
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.