Lv. 54 (수석보연구원) 30,421 납
40%
Exp. 29,599/30,250 | 40%
회원가입 ID/PW 찾기

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

콘텐츠 수 120
판매자 뺘쑝 판매 납포인트 무료 평점 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%를 돌려드립니다.
118 강좌 & 팁 OP-amp의 특징과 설계시 주의사항 [3] 5P dmz1723 2019-06-24 15 361
117 강좌 & 팁 PCB 비용 절감을위한 기본 지침 [4] 무료 아크마 2018-06-17 0 713
116 강좌 & 팁 인쇄 회로 기판 (PCB)에 사용되는 개념과 용어 [6] 무료 아크마 2018-06-17 0 1191
115 강좌 & 팁 알티움을 유지보수하면 좋은 이유 (1) / Altium 17 Draftsman 무료 아크마 2018-01-06 0 271
114 강좌 & 팁 VHDL 기초이론 [2] 5P 태양인이제마 2017-12-26 14 287
113 강좌 & 팁 [국문번역] Programmable-Gain Transimpedance Amplifiers Maximize Dynamic Range in Spectroscopy Systems 5P 오로랏 2017-08-26 4 130
112 강좌 & 팁 이론상 가장 빠른 정렬 알고리즘 [1] 10P 오로랏 2017-08-26 4 362
111 강좌 & 팁 와이어 솔더링 노하우 [10] 5P 아그네스 2017-04-04 16 448
110 강좌 & 팁 vi Editor “Cheat Sheet” [2] 5P 아크마 2017-01-30 2 116
109 강좌 & 팁 AVR 기초강좌_1.보드에 프로그램 다운로드하기_퓨즈설정 [16] 무료 소중이 2010-05-18 0 3130
108 강좌 & 팁 미국 전선 규격 환산 5P 아크마 2012-12-30 2 240
107 강좌 & 팁 EMI 및 EMI 필터 설명, 설계, 주의사항 등 전반적인 내용 [1] 50P 솔개처럼 2016-12-16 8 305
106 강좌 & 팁 노이즈방지 PCB 설계법 [33] 5P 직장인 2016-07-21 31 761
105 강좌 & 팁 Fluorescent Lamps, Ballasts, and Fixtures [2] 5P 오로랏 2016-05-28 0 66
104 강좌 & 팁 [PCB설계] 전압에 따른 최소 도체 간격 & 패턴폭과 허용전류 & TH경에 따른 패턴폭 [6] 5P 킬유21 2015-11-06 13 555
103 강좌 & 팁 2015년 1월~2월에 진행을 하였던 모바일 로봇입니다. [1] 5P 한백금설 2015-05-14 8 460
102 강좌 & 팁 Rc Car를 이용하여 만든 자동주차시스템입니다. [3] 5P 한백금설 2015-05-14 5 627
101 강좌 & 팁 자작 라인 트레이서 [1] 무료 윤컴 2015-05-02 0 317
  • 약속은 태산처럼 해놓고, 실천은 두더지 둔덕만큼 한다.
    - C.H.스퍼전
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.