MATLAB for C/C++ Programmers

Similar documents
예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

Microsoft PowerPoint - 기계공학실험1-1MATLAB_개요2D.pptx

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

PowerPoint Presentation

MATLAB and Numerical Analysis

PowerPoint 프레젠테이션

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

Matlab Graphics

금오공대 컴퓨터공학전공 강의자료

슬라이드 1

C 언어 프로그래밊 과제 풀이

MATLAB

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Vector Differential: 벡터 미분 Yonghee Lee October 17, 벡터미분의 표기 스칼라미분 벡터미분(Vector diffrential) 또는 행렬미분(Matrix differential)은 벡터와 행렬의 미분식에 대 한 표

Ver 1.0 마감하루전 Category Partitioning Testing Tool Project Team T1 Date Team Information 김강욱 김진욱 김동권

Columns 8 through while expression {commands} 예제 1.2 (While 반복문의이용 ) >> num=0

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D204D41544C4142B0ADC0C7B7CF28B9E8C6F7BFEB295F3031C0E55FBDC3C0DBC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

MAX+plus II Getting Started - 무작정따라하기

Microsoft PowerPoint - chap04-연산자.pptx

Advanced Engineering Mathematics

컴파일러

π >> x=linspace(0,2*pi,30); >> y=sin(x); >> plot(x,y) π

Microsoft PowerPoint - chap11-포인터의활용.pptx

Microsoft PowerPoint - ch07 - 포인터 pm0415

OCW_C언어 기초

PowerPoint Template

PowerPoint Presentation

Microsoft PowerPoint - additional01.ppt [호환 모드]

Microsoft PowerPoint - Java7.pptx

02장.배열과 클래스

11장 포인터

PowerPoint Presentation

MATLAB for C/C++ Programmers

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

설계란 무엇인가?

Microsoft PowerPoint - chap05-제어문.pptx

< 고급 C 프로그래밍및실습 > 11 장구조체실습문제 문제에대한안내 - 특별한언급이없으면문제의조건에맞지않는입력은입력되지않는다고가정하라. - 특별한언급이없으면, 각줄의맨앞과맨뒤에는공백을출력하지않는다. - 출력예시에서 는각줄의맨앞과맨뒤에출력되는공백을의미한다. - 입출력예시

% Rectangular Value 입력 t = -50 : 1 : 50; % 시간영역 for i = 1 : 101 if abs ( t ( i ) ) < 10 x ( i ) = 1; else x ( i ) = 0; % 화면을 2 열 1 행으로나눈후 % 2 열 1 행에 R

Microsoft PowerPoint - e pptx

목차 v M-file v 제어 v 변수 함수 스크립트 v 데이터타입 v Plot v variable save/load v File Open/Close, 데이터를쓰고, 읽는 fprintf, fscanf v Graphics with MatLab v 본강의자료는 MATLAB

슬라이드 1

chap 5: Trees

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

Microsoft PowerPoint - lect03.ppt [호환 모드]

Microsoft PowerPoint - chap10-함수의활용.pptx

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

슬라이드 1

1

PowerPoint Presentation

Microsoft Word - matlab_manual.doc

금오공대 컴퓨터공학전공 강의자료

PowerPoint 프레젠테이션

Dialog Box 실행파일을 Web에 포함시키는 방법

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

Chap 6: Graphs

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

; struct point p[10] = {{1, 2, {5, -3, {-3, 5, {-6, -2, {2, 2, {-3, -3, {-9, 2, {7, 8, {-6, 4, {8, -5; for (i = 0; i < 10; i++){ if (p[i].x > 0 && p[i

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

plot1.nb

설계란 무엇인가?

PowerPoint 프레젠테이션

슬라이드 1

2002년 2학기 자료구조

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

Visual Basic 반복문

이장에서다룰내용 테두리를제어하는스타일시트 외부여백 (Margin) 과내부여백 (Padding) 관련속성 위치관련속성 2

윈도우즈프로그래밍(1)

MATLAB for C/C++ Programmers

PowerPoint 프레젠테이션

MATLAB for C/C++ Programmers

<4D F736F F F696E74202D20C4C4C8B031B1DEC7CAB1E22DC0FCC3BCB1B3C0E72D D3133B3E232C8B8B1EEC1F6202D20BAB9BBE7BABB2E707074>

Modern Javascript

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다

Microsoft PowerPoint 웹 연동 기술.pptx

OCaml

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Tcl의 문법

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

Java ...

Multi-pass Sieve를 이용한 한국어 상호참조해결 반-자동 태깅 도구

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

B _00_Ko_p1-p51.indd

Science Cube 1.0 User Guide

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

R R ...

Lab 3. 실습문제 (Single linked list)_해답.hwp

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

슬라이드 1

Microsoft PowerPoint - chap06-2pointer.ppt

Transcription:

M-file 작성시유용한함수들 김탁은 kmste2@kaist.ac.kr 1

input 함수 사용자의입력을기다리는함수 r = input( prompt ) prompt 문자열을화면에출력하고사용자의입력을기다림 사용자가입력한문자열을 evaluation 하고, 그결과를 r 값으로반환 사용자의입력에나타난변수는 workspace 에미리선언되어있어야함 >> x = 5; >> r = input(' 변수명이나수식을입력하세요 : ') 변수명이나수식을입력하세요 : sin(x^2) r = -0.1324 >> r = input(' 변수이름이나수식을입력하세요. : ') 변수이름이나수식을입력하세요. : y Error using input Undefined function or variable 'y'. >> r = input(' 변수명이나수식을입력하세요 : ') 변수명이나수식을입력하세요 : my_triu( magic(4), 1 ) r = 0 2 3 13 0 0 10 8 0 0 0 12 0 0 0 0 >> s = struct('name', ' 홍길동 ', 'age', 30); >> r = input(' 변수명이나수식을입력하세요 : ') 변수명이나수식을입력하세요 : s.name r = 홍길동 >> r = input(' 변수명이나수식을입력하세요 : ') 변수명이나수식을입력하세요 : 'hello world' r = hello world 2

input 함수 str = input( prompt, s ) prompt 문자열을출력하고사용자의입력을기다림 사용자의입력을평가 (evaluation) 하지않고, 문자열로반환 >> reply = input( 'Do you want more? Y/N [Y]:', 's ); >> if isempty(reply), reply = 'Y'; end >> reply reply = Y >> str = input( ' 아무문자나입력하세요 : ', 's') 아무문자나입력하세요 : 안녕하세요 str = 안녕하세요 3

Input Dialog inputdlg 함수 GUI 다이얼로그박스로부터사용자의입력을받음 v = inputdlg( prompt, dialog_title, num_lines, default_values ) v : 사용자가입력한값을 cell로리턴함 >> answer = inputdlg('enter matrix size:', 'Input', 1, {'20'}) answer = '20 >> v = str2num( answer{1} ) v = 20 선택한버튼 4

Input Dialog 여러질문을동시에입력받으려면 prompt 값을 cell 배열로설정 prompt = {'Enter matrix size:', 'Enter colormap name:'}; dlg_title = 'Input'; num_lines = 1; def = {'20','hsv'}; answer = inputdlg(prompt,dlg_title,num_lines,def) answer = '20' 'hsv' >> class(answer) ans = cell 선택한버튼 5

Input Dialog 텍스트입력창의크기조절 prompt 부분의값을 cell 배열로설정 x = inputdlg( {'Name', 'Telephone', 'Account'}, 'Customer', [1 50; 1 12; 1 7] ) 6

menu 함수 menu window 를생성 r = menu( 메뉴타이틀, 버튼레이블 1, 버튼레이블 2, ) 선택한버튼의인덱스를반환 >> r = menu( ' 버튼을선택하세요 ', ' 버튼 1', ' 버튼 2', ' 버튼 3' ) r = 2 선택한버튼 % menu_test.m t = -2*pi:0.01:2*pi; y = sin(t); colors = ['r', 'g', 'b']; k = menu( 선색을정하세요 ', 'red', 'green', 'blue' ); plot(t, y, colors(k)); 7

Quiz 다음과같이 menu window 에함수들의목록이나타나고, 사용자가 임의의함수를선택하면 x 값을입력받아선택한함수의값을계산하는 함수 M-file 을작성해보자. 8

Quiz Sol. 다음과같이 menu window 에함수들의목록이나타나고, 사용자가임의의함수를선택하면 x 값을입력 받아선택한함수의값을계산하는함수 M-file 을작성해보자. 9

dialog 함수들 questdlg : 질문형 dialog box r = questdlg( 메시지, 타이틀, 버튼 1, 버튼 2, 기본선택버튼 ) >> str = questdlg( ' 계속하시겠습니까?', ' 질문 ', 'Yes', 'No', 'No' ) str = No 선택한버튼 msgbox : 일반적인메세지 dialog box r = msgbox( 메시지, 타이틀, 아이콘 ) 아이콘 : none, error, help, warn 10

waitbar 함수 진행상태를표시하는 dialog 를생성 h = waitbar( 0~1 사이값, 메시지 ) h = waitbar( 0, Please wait ); for i = 1:1000 % computation here waitbar( i/1000, h ); end 11

error, warning 함수 error( 메시지 ) 메시지를출력하고함수로부터빠져나오거나 ( 함수 M-file 내에사용된경우 ) 프로그램실행중단 ( 스크립트 M-file 에서사용된경우 ) warning( 메시지 ) 메시지를출력하여사용자에게비정상적인조건이발생했음을경고 error 함수처럼프로그램의실행을중단하지는않음 12

dir 함수 지정한디렉토리에위치한파일들의목록을구조체배열로반환 d = dir( 디렉토리 ) 생략시 Current Directory 의파일들을나열 읽어야할데이터파일이특정디렉토리밑에여러파일로나뉘어저장되어있는경우, 모든데이터파일들을읽어오고자할때사용 >> files = dir( C:\ ); files = 23x1 struct array with fields: name date bytes isdir datenum 13

List Dialog listdlg 함수 데이터를목록으로보여주고, 사용자가해당목록의특정아이템을선택하게 하는 GUI 다이얼로그박스 [selection, ok] = listdlg( 'ListString',S ) ListString : 목록에나타날아이템 ( 문자열 ) 들의 cell array selection : 사용자가입력한값이 ListString 몇번째에위치한아이템인지인덱스값 ok : 선택하면 1, 선택하지않으면 0 d = dir; str = {d.name}; [s,v] = listdlg('promptstring','select a file:',... 'SelectionMode','single',... 'ListString',str) 선택한버튼 14

List Dialog 여러아이템을동시에선택하려면 d = dir; str = {d.name}; [s,v] = listdlg('promptstring','select a file:',... 'SelectionMode', mutiple',... 'ListString',str) s = 3 7 10 v = 1 선택한버튼 15

관계연산자 참값, 거짓값 >> a = true a = 1 >> b = false b = 0 관계연산자종류 연산자 의미 == 대등 ~= 같지않음 < 작은 > 큰 <= 작거나같은 >= 크거나같은 16

논리 is* 함수들 입력된값들이테스트에통과하면 true, 실패하면 false 를리턴하는함수들 논리 is* 함수 기능 ischar isempty isequal isfinite isfloat isinf isinteger islogical isnan isnumeric 문자열인지테스트빈배열 (empty array) 인지테스트두배열이서로동일한지테스트 Inf가아닌배열원소들검지부동소수점배열 (single, double) 인지테스트 Inf인배열원소들검지정수배열인지테스트논리배열인지테스트 NaN 배열원소들을검지수치배열 ( 정수, 부동소수점 ) 인지테스트 >> ischar( hello world ) >> ischar( 1 ) >> isempty( [] ) >> isempty( [1 2] ) >> isequal( [1 2], [1 2] ) >> isequal( [1 2], [3 4 5] ) >> isfinite( [1 Inf 3] ) >> isfloat( 1 ) >> isfloat( int8(1) ) >> isinf( [1 Inf 3] ) >> islogical( [true 1 false] ) >> isnan( [1 nan 2] ) >> isnumeric( 1.323 ) >> isnumeric( hello ) >> isreal( 1.32 ) >> isreal( 1+2i ) >> isscalar( 1 ) >> isscalar( [1 2 3] ) >> issorted( [1 2 3] ) >> issorted( [3 1 2] ) isreal isscalar 실수배열인지테스트스칼라배열인지테스트 >> isinteger( int8(1) ) >> isinteger( 1.1 ) >> isvector( [1 2 3] ) >> isvector( magic(3) ) issorted 정렬된벡터인지테스트 isvector 벡터배열인지테스트 iscolumn 열벡터인지테스트 17

논리 is* 함수활용예 함수 M-file에서입력매개변수가정확하게들어왔는지확인할때요긴하게사용할수있음 예를들어, 두벡터의유클리드거리를계산하는함수의경우, 입력매개변수가벡터가맞는지검사하고, 만약아니면에러를출력 % euc_dist.m function [y] = euc_dist ( v1, v2 ) if ~isvector(v1) ~isvector(v2) error( 벡터가아닙니다. ); end y = sqrt( sum( (v1-v2).^2 ) ); end 18

Quiz 지난시간에두벡터를입력받아두벡터의유클리드거리를계산해주는함수 my_eucdist 를작성해보았다. 입력으로들어오는값은벡터가아닐수도있고, 두벡터의길이가다를수도있으며, 두벡터모두행벡터또는열벡터로정렬되지않을수도있다. 예를들면, 아래와같이 v1, v2 벡터가입력될수있다. >> v1 = [1 4 5 2] >> v2 = [5 3 2 5] >> my_eucdist( v1, v2 ) >> v1 = [1 4 5 2] >> v2 = [5 3 2 5] >> my_eucdist( v1, v2 ) >> v1 = [1 4 5 2] >> v2 = [5 3 2 5 2 7 9] >> my_eucdist( v1, v2 ) >> v1 = [1 4 5 2] >> v2 = { hello, 3} >> my_eucdist( v1, v2 ) 입력매개변수를검사하는안전한함수 M-file을작성해보자. 잘못된입력이들어올시, 에러메시지를출력하자. (error 함수사용 ) 두벡터의방향이정렬되지않은채입력으로들어올경우에는, 두벡터의방향이서로다르더라도에러를내지않고유클리드거리를계산해주자. ( 이때, try-catch 문을사용하지말고, iscolumn 함수를사용하자 ) 19

Quiz Sol. 지난시간에두벡터를입력받아두벡터의유클리드거리를계산해주는함수 my_eucdist 를작성해보았다. 입력매개변수를검사하는안전한함수 M-file을작성해보자. function [ dist ] = my_eucdist( v1, v2 ) if ~isvector(v1) ~isvector(v2) error(' 입력값이벡터가아닙니다.'); end if ~isnumeric(v1) ~isnumeric(v2) error(' 입력값이벡터가아닙니다.'); end if length(v1) ~= length(v2) error(' 두벡터의길이가서로다릅니다.'); end if iscolumn(v1) ~= iscolumn(v2) v1 = v1'; end dist = sqrt( sum( (v1-v2).^2 ) ); >> v1 = [1 4 5 2] >> v2 = [5 3 2 5 2 7 9] >> my_eucdist( v1, v2 ) Error using my_eucdist (line 8) 두벡터의길이가서로다릅니다. >> v2 = {'hello', 3} >> my_eucdist( v1, v2) Error using my_eucdist (line 8) 입력값이벡터가아닙니다. end 20

sort 함수 배열 X 를정렬하는함수 Y = sort(x, 차원인덱스, 정렬모드 ) 배열 X 를 차원인덱스 방향으로 정렬모드 ( 오름차순 / 내림차순 ) 에맞게정렬 차원인덱스생략시기본값 1, 정렬모드생략시기본값 ascend >> M = randi(100,3,5) M = 49 71 68 12 35 45 76 66 50 59 65 28 17 96 23 >> Y = sort(m, 1, 'ascend') Y = 45 28 17 12 23 49 71 66 50 35 65 76 68 96 59 >> Y = sort(m, 1, 'descend') Y = 65 76 68 96 59 49 71 66 50 35 45 28 17 12 23 정렬방향 >> Y = sort(m, 2, 'ascend') Y = 12 35 49 68 71 45 50 59 66 76 17 23 28 65 96 >> Y = sort(m, 2, 'descend') Y = 71 68 49 35 12 76 66 59 50 45 96 65 28 23 17 21

sort 함수 배열 X 를정렬하는함수 [Y, I] = sort(x, 차원인덱스, 정렬모드 ) 정렬된배열 (Y) 과, 정렬순서 (I) 를함께반환 >> M = randi(100,3,5) M = 49 71 68 12 35 45 76 66 50 59 65 28 17 96 23 >> [Y,I] = sort(m, 1, 'ascend') Y = I = 45 28 17 12 23 49 71 66 50 35 65 76 68 96 59 2 3 3 1 3 1 1 2 2 1 3 2 1 3 2 정렬방향 >> [Y,I] = sort(m, 2, 'ascend') Y = I = 12 35 49 68 71 45 50 59 66 76 17 23 28 65 96 4 5 1 3 2 1 4 5 3 2 3 5 2 1 4 22

sortrows 함수 행렬 X 에서특정열값을기준으로행단위로정렬하는함수 [Y, I] = sortrows(x, 정렬할열인덱스 ) 정렬된행렬 (Y) 과, 정렬순서 (I) 를함께반환 >> M = randi(100,3,5) M = 49 71 68 12 35 45 76 66 50 59 65 28 17 96 23 >> [Y, I] = sortrows(m, 2) Y = I = 65 28 17 96 23 49 71 68 12 35 45 76 66 50 59 3 1 2 정렬대상열 >> [Y, I] = sortrows(m, 5) Y = I = 65 28 17 96 23 49 71 68 12 35 45 76 66 50 59 3 1 2 정렬대상열 23

데이터시각화 : 그래프 김탁은 kmste2@kaist.ac.kr 24

MATLAB 에서지원하는그래프 PLOTS 탭 25

MATLAB 에서지원하는그래프 26

2 차원그래프그려보기 x = -pi:0.1:pi; y1 = sin(x); y2 = cos(x); plot( x, y1, o, x, y2, : ); 27

Figure 창컨트롤 그래프저장 그래프확대및축소 그래프포커스이동 그래프회전 범례표시 28

MATLAB 의 2D Plotting 원리 X 값과 Y 값이아래와같이길이가 n 인벡터로주어졌다고가정 XX = xx 1, xx 2,, xx nn YY = yy 1, yy 2,, yy nn MATLAB 에서그래프를그리는방법은 1. 동일한인덱스를가지는 xx kk, yy kk 값에대해 xx kk, yy kk 값을좌표로하여점을찍음 2. 모든 xx kk, yy kk 점에대해, 인접한점 xx kk 1, yy kk 1 와 xx kk+1, yy kk+1 을선으로연결 29

MATLAB 의 2D Plotting 원리 X=0..pi 범위에서 sin(x) 를그린다고하면, X 와 Y 벡터를아래와같이생성 XX = 0, 0.1, 0.2,, pppp YY = sin 0, sin 0.1, sin 0.2,, sin pppp 두벡터는동일한길이를가지도록생성 MATLAB 에서 plot(x, y) 수행시, 1. 동일한인덱스를가지는 xx kk, yy kk 값에대해 xx kk, yy kk xx kk, sin xx kk 값을좌표로하여 점을찍음 2. 모든 xx kk, yy kk 점에대해, 인접한점 xx kk+1, yy kk+1 을선으로연결 x 값이촘촘할수록 더정확한모양의 그래프가그려짐!! 30

MATLAB 의 2D Plotting 원리 벡터 X 의원소개수 (x 축분할개수 ) 에따른그래프의변화 x = linspace(-2,2,500); y = exp(x).* sin(1./x); plot(x,y) x = linspace(-2,2,100); y = exp(x).* sin(1./x); plot(x,y) 31

그래프곡선속성 x = -pi:0.1:pi; y1 = sin(x); y2 = cos(x); plot( x, y1, o, x, y2, : ); 32

그래프곡선속성 곡선의선모양, 색상, 기호등을각기다르게표현가능 각속성들을조합해서그래프드로잉 곡선속성 기호 의미. 점 x x표 o 원 + 플러스기호 * 별표 s 정방형 기호 d 다이아몬드 v 삼각형 ( 위쪽 ) ^ 삼각형 ( 아래쪽 ) < 삼각형 ( 왼쪽 ) > 삼각형 ( 오른쪽 ) p 오각형 h 육각형 곡선속성기호의미 b 파란색 r 빨강색 g 녹색 c 청록색색종류 m 자홍색 y 노란색 w 흰색 k 검은색곡선속성기호의미 - 실선 : 점선선모양 -. 반점선 -- 긴점선 33

그래프곡선속성 실습 : 그래프곡선속성들을다양하게조합하여그래프를그려보자 >> plot(-2:0.1:2, sin(-2:0.1:2), 'k<:') >> plot(-2:0.1:2, sin(-2:0.1:2), 'rp-.') >> plot(-2:0.1:2, sin(-2:0.1:2), 'b-.') 34

격자, 라벨, 범례 격자 grid on, grid off 축라벨 x 축 : xlabel( 문자열 ) y 축 : ylabel( 문자열 ) x = 0:0.1:2*pi; y = sin(x); z = exp(-x).*cos(x); plot(x, y, x, z, ':'); grid on; xlabel('x value'); ylabel('y value'); legend( 'sin(x)', 'exp(-x)*cos(x)', -1); 범례 legend( 문자열, 문자열, 범례위치 ) 35

범례 (legend) 의위치 옵션범례의위치 0 데이터와겹치지않는최적위치 1 축의오른쪽위모서리 2 축의왼쪽위모서리 3 축의왼쪽아래모서리 4 축의오른쪽아래모서리 -1 그래프의오른쪽 36

축 (axis) 속성 axis tight 또는 axis( tight ) x = 0:0.1:2*pi; y = cos(x); plot(x,y); >> axis tight 37

축 (axis) 속성 axis( [xmin xmax ymin ymax] ) >> axis( [-1 7-1.2 1.2] ) axis 명령어옵션 axis auto axis equal axis off axis square xlim( [xmin xmax] ) ylim( [ymin ymax] ) 의미기본축한계로되돌아감 x, y, z 축상의데이터단위를동일화축을제거축박스를정사각형으로설정 x축한계를설정 y축한계를설정 38