부록 A. Matlab 사용법 Korea University of Technology and Education

Slides:



Advertisements
Similar presentations
MATLAB 의 사용.  초기 MATLAB 은 Cleve Moler 에 의해 Fortran 으 로 작성  현재는 미국의 MathWork 사에 의해 C++ 로 작성  Matlab 은 Matrix 계산에 뛰어난 능력을 가지고 있 으며 많은 이론의 실증 프로그램을 작성하는데.
Advertisements

IDL 천문관측 및 실험 1. 목차 IDL 이란 ? 기본적인 유용한 함수들 그래프 그리기 & 이미지 기본적인 프로그래밍.
MATLAB 기초강의 연세대학교 방사선학과 방사선영상 실험 실습. MATLAB 이란 ?  Matlab 이란 MATrix LABoratory 를 뜻하는 말로서, 수 치해석, 행렬연산, 신호처리 및 간편한 그래픽 기능 등을 통합하여 고성능의 수치계산 및 결과의 가시화 기능을.
YES C 제 1 장 C 언어의 개요 1/34 제 1 장 C 언어의 개요 문봉근. YES C 제 1 장 C 언어의 개요 2/34 제 1 장 C 언어의 개요 1.1 프로그램과 C 언어의 특징 1.2 C 언어의 프로그램 구성 1.3 비주얼 C++ 통합 환경 들어가기.
C 언어 컴퓨터학과 C 언어 ( STS ) (Chap5. Selection-Making Decisions ) C 언어.
MATLAB 개요와 응용 5장 2차원 그래프.
홍보출판 위원회 출판국 2010년 사역 계획서 발표자 : 출판국 국장 / 박수만권사 일시: 2010년 01월 17일(일) 1.
제 1장 자바스크립트란 ?.
Mathematics for Computer Graphics
응용 전산 및 실습 MATLAB – Chapter 4 그래픽
역대 정부개편의 교훈과 새로운 정부조직개편의 방향
C++ Espresso 제1장 기초 사항.
HTML과 CGI 프로그래밍 PHP 웹 프로그래밍 (PHP Web Programming) 문양세
제 1장 C 언어의 소개.
김종찬 김정석 이상미 임성규 담당 교수님 최병수 교수님
4. Matlab-Simulink를 이용한 메카니즘 해석
체위변경과 이동 요양보호 강사 : 이윤희.
축산 인식개선을 위한 농협의 추진 사례 ( ) 농협중앙회 축산지원단장 박인희.
시스템 생명 주기(System Life Cycle)(1/2)
01. Index StarPlayer API Guide 01. Index 02. 상수값 정의 03. API 정의
시스템 생명 주기(System Life Cycle)(1/2)
2. PHP 프로그래밍 웹 브라우저로 데이터 전송 주석 작성하기 변수/상수 문자열/숫자형 HTML 폼 만들기
JavaScript.
Ch.3 그래프 속성의 설정과 2차원 그래프.
Ch2-2. VHDL Basic VHDL lexical element VHDL description
Chapter 4 – 연 산 자 Outline 4.1 산술 연산자 4.2 관계 연산자 4.3 동등 연산자 4.4 논리 연산자
CAD/CAM 및 실습(04) 메 카 트 로 닉 스 공 학 부 1. 도면 2. 공구설정 3. NC Data 작성
MATLAB 개요와 응용 1장 MATLAB 시작하기
Chapter 3 Flow of Control
반도체 신입 Operator 채용 안내 ㈜ 하이닉스반도체에서는 2011년도 신입 Operator 사원을 모집합니다.
Microwave & Millimeter-wave Lab.
4장 제어문 선택문: if 문, if – else 문, switch 문
MATLAB 기초 1.1 기본적인 MATLAB 명령어 1.2 행렬과 벡터 연산 1.3 제어문 1.4 입출력
부록 A Matlab 활용.
5. 동역학적 해석 Korea University of Technology and Education
Chapter 4 수식과 연산자.
팀명 : Fighting 팀원 : 신현상 최찬수
6장 데이터 타입(2) 순천향대학교 컴퓨터공학부 하 상 호.
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
기초 프로그래밍 Yang-Sae Moon Department of Computer Science
Draw the basic Geometry Objects
신 윤 호 ㈜엘림에듀 초등사업본부장, 중앙대학교 체육학박사
MATLAB(6.5)의 기본 사용법 오 승 택.
Matlab 기초 한밭대학교 전기공학과 담당교수 : 이 경 복.
성과주의 연봉제의 재설계 방안.
제 3 장 연산자 (Operators).
기계학습과 R 실습.
프로그래밍 원리 Chapter 04 자료 처리와 연산자 신한대학교 IT융합공학부 박 호 균.
4장 - PHP의 표현식과 흐름 제어-.
6장 데이터 타입(3) 순천향대학교 컴퓨터공학부 하 상 호.
시작하며 신한대학교 IT융합공학부 컴퓨터공학전공 박 호 균 1주차 ( )
6장 콘 셸 뇌를 자극하는 Solaris Bible.
3. 백터해석(Kinematic Analysis using Vector)
루프와 카운트 Looping and counting
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
작성일 참고서적 – Programing Game AI by Example
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
MATLAB 기초 by 이대익 1.
빛 의 합 성 과 학 1 학년 Ⅱ. 빛 > 2. 빛의 색( 8/8 ) [초기 화면]
혼색 color mixture.
이산수학(Discrete Mathematics)
Interactive Data Language
2.1 MATLAB 환경 2.2 배정 2.3 수학적 연산 2.4 내장함수의 사용 2.5 그래픽 2.6 다른 자원
이번 시간에는... 지난 시간까지 2회차에 걸쳐 WML의 택스트 포맷, 이미지 처리, 페이지 이동, 태스크 수행과 이벤트 처리 및 WML 사용자 Input 처리 태그 등, WML 개발에 대해서 알아보았습니다. 이번 시간에는 2회차에 걸쳐, WML 스크립트 개발에 대해서.
양초 한 자루의 과학 과학영재교육 전공 김 연 주 류 은 희 이 상 희.
[색채지각 ] Color Perception.
R을 활용한 기초통계 2019년 3월 14일 (목) 김 철 기.
SMARTsuite7 TO 년 2월.
PHP 기초문법 PHP를 공부하는데 있어 가장 기초가 되는 PHP기초문법에 대해서 배워 봅니다.
Python 기본.
Presentation transcript:

부록 A. Matlab 사용법 Korea University of Technology and Education School of Mechatronics

차 례 Matlab이란 무엇인가? 기본적인 Matlab 사용법 III. M-file Programming 차 례 Matlab이란 무엇인가? 기본적인 Matlab 사용법 III. M-file Programming IV. Matlab Graphics V. 비선형 방정식 해 구하기 Korea University of Technology and Education School of Mechatronics

I. Matlab이란 무엇인가? Korea University of Technology and Education School of Mechatronics

MATrix LABoratory = MATLAB 수학과 관련된 계산(수치해석적 계산) 알고리즘 개발 모델링과 데이터 분석 여러 가지 공학적인 그래픽적 표현 GUI에 의한 응용 개발 Matlab 의 기본 데이터 요소는 제한 없는 배열(array)로 구성 다양한 Toolbox(신호처리, 통계, 제어, 동적 시스템 해석) 외부 프로그램(C, Fortran)과 연결하여 사용가능 Simulink Korea University of Technology and Education School of Mechatronics

Matlab 사용예 (예제) 다음 함수의 적분식을 구하고 그래프를 그리시오. Korea University of Technology and Education School of Mechatronics

>> y=int('sin(x)') y = -cos(x) >> ezplot(y) >> grid >> y=int('x*sin(x)') y = sin(x)-x*cos(x) >> ezplot(y) >> grid Korea University of Technology and Education School of Mechatronics

(예제) 다음 행렬의 역행렬을 구하시오 >> A=[4 2;1 2] A = 4 2 1 2 (예제) 다음 행렬의 역행렬을 구하시오 >> A=[4 2;1 2] A = 4 2 1 2 >> B=inv(A) B = 0.3333 -0.3333 -0.1667 0.6667 Korea University of Technology and Education School of Mechatronics

-3 (예제) 다음 연립방정식의 해를 구하시오. >> A=[1 2;2 6]; >> B=[4;2]; (예제) 다음 연립방정식의 해를 구하시오. >> A=[1 2;2 6]; >> B=[4;2]; >> x=inv(A)*B x = 10 -3 Korea University of Technology and Education School of Mechatronics

>> ezplot('x^3+sin(x)-3') >> grid (예제) 다음 비선형방정식의 해를 구하시오. >> ezplot('x^3+sin(x)-3') >> grid >> solve('x^3+sin(x)-3') ans = 1.269321245656 Korea University of Technology and Education School of Mechatronics

(예제) 다음 슬라이드 크랭크 기구의 운동을 해석하시오 (예제) 다음 슬라이드 크랭크 기구의 운동을 해석하시오 슬라이드의 위치해석 결과 Simulink Model Korea University of Technology and Education School of Mechatronics

II. 기본적인 Matlab 사용법 Korea University of Technology and Education School of Mechatronics

Matlab 시작하기 명령어 창 Matlab Icon Workspace창 명령어창에 직접 입력하여 결과를 볼 수 있다 명령어 History 창 Matlab 초기화면 Korea University of Technology and Education School of Mechatronics

(예제) 다음 연립방정식의 해를 구하시오. >> A=[1 2;2 6]; >> B=[4;2]; >> x=inv(A)*B x = 10 -3 Korea University of Technology and Education School of Mechatronics

>>변수명(variable) = 수식(expression) >> a=[1 2 3] Matlab 변수 형식 모든 변수는 행렬(배열) 형태이며 “= (assignment operator)” 왼쪽에는 저장할 변수(variable)명을, 오른쪽에는 저장할 행렬수식으로 이루어진다. 변수명은 알파벳과 숫자의 조합으로 할 수 있으나 첫문자는 반드시 알파벳으로 시작하여야 한다. 알파벳은 대문자와 소문자는 서로 다른 변수로 인식한다. >>변수명(variable) = 수식(expression) >> a=[1 2 3] Korea University of Technology and Education School of Mechatronics

>> x=-13; y = 5*x, z = x^2+y y = -65 z = 104 >> x = 5*cos(pi/6), y = 5*sin(pi/6) x = 4.3301 y = 2.5000 Korea University of Technology and Education School of Mechatronics

행렬 생성 방법 >> a=[1 1 1;1 2 3;1 3 6] ↲ a = 1 1 1 1 2 3 1 3 6 Matlab 명령창에서 행렬을 만드는 경우, 열(column)의 원소들은blanks 또는 comma로 구분을 한다. 행(row)의 원소들은 semicolon(;)으로 구분하거나 “enter 키”를 누르면 된다. 다 작성한 행렬요소는 square brackets( [ ] )으로 닫아 준다. 예를 들어서, 3행3열의 다음과 같은 행렬 A를 만들어 보자.   >> a=[1 1 1;1 2 3;1 3 6] ↲ a =      1     1     1      1     2     3      1     3     6 Korea University of Technology and Education School of Mechatronics

>> x=min_val : delta : max_val Colon Operator “ x "가 1부터 1씩 증가하여 10까지 증가한다. >> x=1:10 x = 1 2 3 4 5 6 7 8 9 10 >> x=min_val : delta : max_val “ x "가 1부터 0.2씩 증가하여 2까지 증가한다. >> x=1:0.2:2 x = 1.0000 1.2000 1.4000 1.6000 1.8000 2.0000 Korea University of Technology and Education School of Mechatronics

행렬의 계산 역행렬 >> a=[1 1 1;1 2 3;1 3 6] ↲ a = 1 1 1 1 2 3 1 3 6 1 1 1 1 2 3 1 3 6 >> b=inv(a) b = 3 -3 1 -3 5 -2 1 -2 1 Korea University of Technology and Education School of Mechatronics

덧셈과 뺄셈 >> a=[1 1 1;1 2 3;1 3 6]; >> b=[3 -3 1;-3 5 -2;1 -2 1]; >> c=a+b c = 4 -2 2 -2 7 1 2 1 7 >> d=a-b d = -2 4 0 4 -3 5 0 5 5 Korea University of Technology and Education School of Mechatronics

덧셈과 뺄셈 >> a=[1 1 1;1 2 3;1 3 6]; >> b=a+2 b = 3 3 3 3 4 5 3 3 3 3 4 5 3 5 8 전치행렬(transpose) >> a=[1 2 3;4 5 6;7 8 9]; >> b=a' b = 1 4 7 2 5 8 3 6 9 Korea University of Technology and Education School of Mechatronics

곱셈 >> a=[1 1 1;1 2 3;1 3 6]; >> b=a*a b = 3 6 10 6 14 25 3 6 10 6 14 25 10 25 46 >> b=a^2 Korea University of Technology and Education School of Mechatronics

곱셈 >> a=[1 1 1;1 2 3;1 3 6]; >> b=[3 -3 1;-3 5 -2;1 -2 1]; >> c=a*b c = 1 0 0 0 1 0 0 0 1 Korea University of Technology and Education School of Mechatronics

Matlab 연산자 산술연산자(arithmetic operators) 관계연산자(relational operators) 수치 계산을 행하는 연산자로써, 사칙연산이나 거듭 제곱 등 관계연산자(relational operators) 배열을 구성하는 각각의 원소에 대한, “작다(less), 같지 않다(not equal to) 등 비교할 때 사용한다 논리연산자(logical operators) "AND", "OR"등의 논리 연산을 행하며 “TRUE", "FALSE"와 같은 결과를 알려 준다. 연산자 우선순위 산술 연산자가 가장 우선 순위가 높고, 그 다음으로 관계 연산자이며, 마지막으로 논리 연산자 순서이다. 그러나, 만일, 같은 우선 순위를 갖는 연산자이면, 왼쪽에 위치한 연산자부터 계산해 나간다. 물론, “ ( ) ”를 수식에 취하면 가장 높은 연산 순위를 갖는다. Korea University of Technology and Education School of Mechatronics

관계연산자(relational operators) 관계 연산자는 항상 원소 대 원소(element-by-element)로 연산한다. 주어진 관계가 사실인 경우(TRUE) 해당 위치에는 “1”을 반환하고, 거짓인 경우(FALSE)에는 해당 위치에 “0”을 반환한다. 관계 연산자는 논리 연산자와 함께 앞으로 M-files를 작성 할 때, " if , while, for, switch "등과 더불어 실행순서를 제어하는 데 귀하게 쓰일 것이다. 관계 연산자의 종류 해당 연산자에 대한 설명 < “보다 적다(Less than)" <= "적거나 같다(Less than or equal to)" > "보다 크다(Greater than)" >= "크거나 같다(Greater than or equal to)" == "같다(Equal to)" ~= "같지 않다(Not equal to)" Korea University of Technology and Education School of Mechatronics

관계연산자의 예 >> a=[2 7 6;9 0 -1;3 5 6]; >> b=[8 0.2 0;-3 2 5;4 -1 7]; >> c=a<b c = 1 0 0 0 1 1 1 0 1 >> c(2,2) ans = 1 >> a=1;b=2; >> c=a<b c = 1 >> d=a>b d = >> a=[1 2 3]; >> b=[3 1 2]; >> c=a<b c = 1 0 0 Korea University of Technology and Education School of Mechatronics

논리연산자(logical operators) Matlab의 논리 연산자는 “ AND, OR, and NOT"을 수행한다. 주어진 관계가 사실인 경우(TRUE) 해당 위치에는 “1”을 반환하고, 거짓인 경우(FALSE)에는 해당 위치에 “0”을 반환한다. “0”일때는 거짓으로 보고 부호와 숫자의 크기은 참 거짓과 관계가 없다 논리 연산자의 종류 해당 연산자의 설명 & AND | OR ~ NOT  Matlab의 논리 연산자의 종류 Korea University of Technology and Education School of Mechatronics

논리연산자의 예 “AND ” 연산자 >>U=[-1 0 2 3 0 5]; ↲ 여기서, 참이라 함은 영이 아닌 수치(nonzero number)를 말한다. >>U=[-1 0 2 3 0 5]; ↲ >>V=[5 6 1 0 0 7]; ↲ >>U & V ↲ ans =      1     0     1     0     0     1 Korea University of Technology and Education School of Mechatronics

“OR ” 연산자 >>U=[-1 0 2 3 0 5]; ↲ >>V=[5 6 1 0 0 7]; ↲ ans =      1     1     1     1     0     1 “NOT”연산자 “NOT” 연산자는 피 연산자의 부정을 행할 때 이용된다. >>~U ↲ ans =      0     1     0     0     1     0 Korea University of Technology and Education School of Mechatronics

논리함수(logical functions) 논리 함수의 종류 해당 함수에 대한 설명 xor exclusive OR연산을 행한다. all 주어진 벡터의 모든 원소가 “참(nonzero)”인 경우에만 “1”을 반환한다. any 주어진 벡터의 임의의 원소가 “참(nonzero)”인 경우에 “1”을 반환한다. isnan 주어진 벡터의 원소 중에서 “NaN”이 위치한 곳에는 “1”을 반환한다. isfinite 주어진 벡터의 원소 중에서 유한한 크기를 갖는 수치, 또는 NaN이 아닌 곳에는 “1”을 반환한다. isinf 주어진 벡터의 원소 중에서 유한한 크기를 갖는 곳에는 “1”을 반환한다. Korea University of Technology and Education School of Mechatronics

III. M-file Programming Korea University of Technology and Education School of Mechatronics

M-file이란 무엇인가 전체적인 의미로 M-file이란 Matlab언어로 쓰여진 파일들(files)을 말한다. M-file은 연속적인 Matlab문장들(명령어들)을 수행하는 script 양식(script mode)과 입력 매개변수와 출력 매개변수를 다루는 함수 양식(function mode)이 있다. M-file은 Matlab이 제공하는 text editor를 이용하여 작성 할 수 있고, 다른 여러 종류의 ASCII text editor를 이용할 수도 있다. Korea University of Technology and Education School of Mechatronics

M-file 종류 비교 script mode의 M-file function mode의 M-file 파일 이름은 어떠한 이름으로도 할 수 있다. 파일의 이름은 function이름과 가능 한한 같게 한다. base workspace에 있는 data에 대해서 연산한다. function workspace에 있는 data에 대해서 연산한다. Matlab command window에 있는 변수 공간 function mode의 M-file 내에서만 존재하는 내부변수 전역변수나 userdata를 이용하면 function worspace변수를 base workspace에서도 사용할 수 있다. 그러나 편리한 데이터 교환은 출력 변수와 입력 변수를 사용하는 것이 좋다. Matlab은 이처럼 변수를 연산하는 작업공간이 따로 설정되어 있다 Korea University of Technology and Education School of Mechatronics

Script Mode의 M-file 작성하기 (예제) 주어진 A 행렬의 역행렬을 구하는 M-file을 작성해 보자.                                   M-file "test.m"의 내용 A=[1 2 4; 3 5 6; 6 2 1] B=inv(A) Korea University of Technology and Education School of Mechatronics

Korea University of Technology and Education School of Mechatronics

만들어진 M-file을 실행시키기 위해서는 명령 창에서 test라고 입력하고 enter를 치면 test 만들어진 M-file을 실행시키기 위해서는 명령 창에서 test라고 입력하고 enter를 치면 test.m 파일에 포함된 명령들을 수행한다. Korea University of Technology and Education School of Mechatronics

(예제) 주어진 두개의 행렬 A,B 의 합과 차 그리고 곱을 구하는 m-file을 작성하시오 결과 >> test1 c = 4 -2 2 -2 7 1 2 1 7 d = -2 4 0 4 -3 5 0 5 5 e = 1 0 0 0 1 0 0 0 1 a=[1 1 1;1 2 3;1 3 6]; b=[3 -3 1;-3 5 -2;1 -2 1]; c=a+b d=a-b e=a*b 실행 m - file Korea University of Technology and Education School of Mechatronics

Function Mode의 M-file 작성하기 Matlab에서 function mode M-file을 작성하려면, (1) “ function 출력 변수 = 함수 이름(입력 변수) ”의 형태로 함수를 정의한다. (2)  “ % ”으로 시작하는 주석을 단다. Matlab 4.2c이전 버전들에서는 script mode의 M-file은 어떠한 이름으로도 파일 이름을 설정할 수 있지만, function mode의 M-file은 function이름과 같은 이름의 M-file로 저장해야 했었다. 그러나, Matlab5.0이후 버전에서는 이러한 제한요소가 없어졌다. 만일, 함수 정의 부에 있는 이름과 파일 이름이 다르다면, Matlab은 함수 정의 부에 있는 이름을 무시하고, 파일이름을 이용한다. 그러나, 가능한한 function mode M-file의 경우, 파일 이름은 함수이름과 같게 하는 것이 좋다. Korea University of Technology and Education School of Mechatronics

(예제) 주어진 행렬의 역행렬을 구하는 M-file을 작성해 보자. M-file을 저장할 때 file 이름은 함수명으로 한다 파일명 : inverse.m Korea University of Technology and Education School of Mechatronics

function y=inverse(a) % 행렬 a에 대한 역행렬을 계산하여 반환한다. y=inv(a) 함수명 출력변수 입력변수 function y=inverse(a) % 행렬 a에 대한 역행렬을 계산하여 반환한다. y=inv(a) M-file을 저장할 때 file 명은 함수명으로 한다. Inverse.m Korea University of Technology and Education School of Mechatronics

Functiont Mode의 M-file 실행하기 다음 그림은 command window에서 inverse를 실행한 예를 보여주고 있다. 그림에서 알 수 있듯이 “inverse”함수는 입력 매개변수 값을 이용하여 역행렬을 계산하고 그 결과를 출력 변수를 통하여 Base workspace로 반환한다. >> a=[1 2;2 3]; >> y=inverse(a) y = -3 2 2 -1 Function m-file : inverse.m function y=inverse(a) % 행렬 a에 대한 역행렬을 계산하여 반환한다. y=inv(a) Korea University of Technology and Education School of Mechatronics

if 논리적인 식 명령어 문장 명령어의 흐름제어 elseif 논리적인 식 명령어 문장 else 명령어 문장 end       명령어 문장 elseif 논리적인 식      명령어 문장  else      명령어 문장   end (1) if, else와 elseif 만일, “if 문장”의 논리적인 식이 “1(TRUE)"이면, Matlab은 명령어를 수행한다. 그러나, 논리적인 식의 값이 ”0(FALSE)"이면 명령어 문장을 건너뛴다 만일, 논리적인 식의 값이 scalar가 아니라 배열(array)로 주어진다면, 그 배열의 모든 원소가 “참(TRUE)"이어야 ”참(TRUE)"이다 Korea University of Technology and Education School of Mechatronics

(2) switch 문 switch 변수 또는 식 case 값1 %만일, 변수 또는 식이 “값1”인 경우! 명령어 문장       명령어 문장   case 값2  %만일, 변수 또는 식이 “값2”인 경우!       명령어 문장    ... 임의의 수의 case 문들 ...  otherwise  %만일, 변수 또는 식의 값이     %어떠한 case 값들과도 맞지 않을 때               명령어 문장 end C언어에서의 “switch 문”과는 달리 Matlab에서의 switch문은 변수 또는 식의 값과 맞는 “case문”의 명령어만 수행하므로 C언어에서처럼 “break” 명령어가 따로 필요 없다. C언어에서의 “switch”문에 있는 “default”명령어는 Matlab에서 “otherwise”에 해당한다. Korea University of Technology and Education School of Mechatronics

for 지수(index)=초기치 : 증분 : 최종치 명령어 문장들 end   명령어 문장들 end 기본적으로 증분량을 지정하지 않으면, 매번 반복할 때마다 증분하는 양은 “1”로 된다. Matlab은 배열의 첫 번째 요소를 다른 언어에서처럼 “0”으로 잡는 것이 아니라 “1”로 잡는다. 그러므로 초기치가 “0”부터 시작 한다면 배열의 subcript로는 사용될 수 없다 Korea University of Technology and Education School of Mechatronics

논리적인 조건이 “참(TRUE)”이어야 명령어 문장을 실행한다. (4) while 문 while 논리적인 조건   명령어 문장들 end 논리적인 조건이 “참(TRUE)”이어야 명령어 문장을 실행한다. “while 문”에서의 “참일 조건”은 “if 문”에서의 “참일 조건”과 같다. Korea University of Technology and Education School of Mechatronics

기타 유용한 함수 (1) Input 함수 "R=input('prompt', 's')“   →"input.m"함수는 실행 시, ‘prompt' string이 나오고,   →사용자가 문자열을 입력할 때까지 기다린다.   →사용자가 문자열을 입력하면, 그 입력된 문자열은   →출력 변수 R 에 반환된다.   →단, 문자열이 수식을 표현하는 경우 계산되지 않는다.  (b) "R=input('prompt')“   →사용자가 수식이나 변수이름을 입력할 때까지 기다린다.   →입력된 것이 수식인 경우에는 base workspace에 있는 변수들에   →기반을 두고 계산하여 그 결과 값을 출력 변수 R 에 반환 한다. Korea University of Technology and Education School of Mechatronics

>> R=input('아무 문자나 입력하시오','s') 아무 문자나 입력하시오 test R = test >> x=2; y=3; >> R=input('아무 문자나 입력하시오','s') 아무 문자나 입력하시오 test R = test >> R=input('변수 이름이나 수식을 입력하시오') 변수 이름이나 수식을 입력하시오 x+y 5 test 입력 X+y 입력 Korea University of Technology and Education School of Mechatronics

(2) menu 함수 "R=input('menu title', '선택1','선택2', ... ,'선택3')"  →주어진 'menu title'을 가진 menu window를 생성한다.  →선택1, ... ,선택2 항목은 각각 “push" 버튼의 label로 나타난다.  →임의의 “push"버튼을 click하면 해당하는  →선택n의 번호를 반환한다. (예제)   k=menu('선의 색을 결정','red','green','blue') Korea University of Technology and Education School of Mechatronics

IV. Matlab Graphics Korea University of Technology and Education School of Mechatronics

(c) Line object (d) Patch object (a) figure object (b) Axes object (e) Surface object (f) Image object (i) Uimenu object (h) Uicontrol object (g) Text object Korea University of Technology and Education School of Mechatronics graphics objects”의 종류

Plot 함수 (예제) 그래프를 그리시오. plot(X,Y) : X1의 열 벡터와 Y1의 열 벡터가 각각의 line을 구성한다. >> n=100; >> h=2*pi/n; >> x=0:h:2*pi; >> y=sin(x); >> plot(x,y) >> grid Grid(눈금선) Korea University of Technology and Education School of Mechatronics

plot(Y) Y가 실수이면, x축은 Y의 index이고, y축은 Y의 열 벡터들로 이루어진다. Y가 복소수이면, x축은 real(Y), y축은 imag(Y)로 이루어진다. y = 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 X = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 >> y=1:2:20; >> plot(y) >> grid Korea University of Technology and Education School of Mechatronics

X의 열(행) 벡터와 Y의 열(행) 벡터가 각각의 line을 구성한다. (2) plot(X,Y)  X의 열(행) 벡터와 Y의 열(행) 벡터가 각각의 line을 구성한다. >> y=[0 2 4 6 8 10]; >> y=[0 2 4 3 6 5]; >> plot(x,y) >> grid >> x=[-1 1 3 5 7 9]'; >> y=[0 2 4 3 6 5]'; >> plot(x,y) >> grid Korea University of Technology and Education School of Mechatronics

plot(X,Y) X,Y가 행렬(배열)인 경우 대응하는 X의 열(행) 벡터와 Y의 열(행) 벡터가 각각의 line을 구성한다. y = 1 1 1 2 4 6 3 6 9 x = 1 1 1 2 2 2 3 3 3 >> x=[1 1 1;2 2 2;3 3 3]; >> y=[1 1 1;2 4 6;3 6 9]; >> plot(x,y) >> grid Korea University of Technology and Education School of Mechatronics

>> x=3; >> y=1:0.5:4; >> plot(x,y,'*') (3) plot(S,Y) X가 상수이고 Y가 열(행)벡터인 경우 X 값에 대하여 Y 값이 연결되지 않은 점으로 나타난다 >> x=3; >> y=1:0.5:4; >> plot(x,y,'*') y = 3 X = 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0 Korea University of Technology and Education School of Mechatronics

LineSpec은color, maker, linestyle, 로 구성되어 선의 style을 결정한다. Line 스타일 plot(X1,Y1,LineSpec,...)  LineSpec은color, maker, linestyle, 로 구성되어 선의 style을 결정한다. LineSpec = ‘C+M+S’ Color Maker Line Style b blue . point - solid g green o circle : dotted r red x x-mark -. dashdot c cyan + plus -- dashed m magenta * star y yellow s square k black d diamond v triangle (down) ^ triangle (up) < triangle (left) > triangle (right) p pentagram h hexagram Korea University of Technology and Education School of Mechatronics

>> x=1:5; >> y=[0 4 2 6 7]; >> plot(x,y,'bd:') >> grid ‘ b ’ : blue ‘ d ’ : diamond ‘ : ’ : dot line Korea University of Technology and Education School of Mechatronics

axis([xmin xmax ymin ymax zmin zmax]) 기타 그래픽과 관련된 명령어 그래프의 범위 변환 axis([xmin xmax ymin ymax zmin zmax]) 좌표의 범위(range)를 결정해준다.    2차원 그래프인 경우에는 "zmin zmax"만 빼주면 된다. >> t=1:1/100:20; >> y=sin(t); >> plot(t,y) >> grid >> axis([0 5 -1 1]) Korea University of Technology and Education School of Mechatronics

axis square : 그림창을 정사각형으로 바꾸어 준다. axis equal : 가로 세로의 치수 비율을 1:1로 해준다 그래프의 가로 세로 비율 변환 axis square : 그림창을 정사각형으로 바꾸어 준다.    axis equal : 가로 세로의 치수 비율을 1:1로 해준다 >> t=[0:10:360]*(pi/180); >> x=2*cos(t); >> y=2*sin(t); >> plot(x,y) >> grid >> axis square Korea University of Technology and Education School of Mechatronics

axis square : 그림창을 정사각형으로 바꾸어 준다. axis equal : 가로 세로의 치수 비율을 1:1로 해준다 Korea University of Technology and Education School of Mechatronics

Title/Axis title/Legend 사용법 >> x=-pi:pi/20:pi; >> plot(x,cos(x),'r-',x,sin(x),'b-.'); >> xlabel('x axis'); >> ylabel('value'); >> title('Sine and Cosine Curve'); >> h=legend('cos','sin',0); h-=legend(‘string1’, ‘string2’,…., pos) Korea University of Technology and Education School of Mechatronics

h-=legend(‘string1’, ‘string2’,…., pos) h=legend('cos','sin',0) h=legend('cos','sin',-1) h=legend('cos','sin',2 “legend.m”함수에서의 “pos”값에 의한 legend 위치 pos legend의 위치 -1 좌표계의 오른쪽 밖에 놓는다. 좌표계의 안쪽에 놓는다. 1 좌표계의 upper-right corner에 놓는다. 2 좌표계의 upper-left corner에 놓는다. 3 좌표계의 lower-left corner에 놓는다. 4 좌표계의 lower-right corner에 놓는다. [XlowerLeft YlowerLeft] normalized units 체계에서 주어진 좌표 값에 놓는다. Korea University of Technology and Education School of Mechatronics

subplot(m,n,p) 여러 개의 그래프 동시 표현법 >> t=0:1/100:20; 하나의 figure에 대해 rectangular 좌표계를 원소로 갖는 m행 n열의 작은 좌표계를 여러개 만들어 내고, 좌측 상단부터 차례로 1,2,…m*n의 순서로 그래프가 들어갈 번호가 정해지며 p번째의 자리에 그래프를 그린다. >> t=0:1/100:20; >> subplot(2,2,1); >> plot(t,sin(t)); >> subplot(2,2,2); >> plot(t,cos(2t)); >> plot(t,cos(t)); >> subplot(2,2,3); >> plot(t,exp(-t)); >> subplot(2,2,4); >> plot(t,exp(-sin(t))); Korea University of Technology and Education School of Mechatronics

hold on/hold off 그래프 겹처 그리기 >> t=0:1/100:20; 만일, figure안에 다른 그래프를 첨가하려면, 먼저 그림을 생성한 후 ">>hold on  "하면 된다. 그러면, 원래의 그림 위에 앞으로 나오는 모든 그래프는 합쳐져서 나타난다. 더 이상 같은figure에 그래프를 첨가시키고 싶지 않으면 ">>hold off  "라고 명령한다. 그러면, 이 후 만들어지는 그래프는 새로운 figure에 나타난다. >> t=0:1/100:20; >> plot(t,sin(t)); >> hold on >> plot(t,cos(t)); Korea University of Technology and Education School of Mechatronics

grid on/grid off 눈금선(grid) 그리기 >> t=0:1/100:20; x,y 축 모두에 점선의 그리드를 첨가하려면 “grid on” 명령을 하면 된다. 활성 그림창에서 그리드 라인을 제거하기 위하여 “grid off” 명령을 하면 된다. >> t=0:1/100:20; >> plot(t,sin(t)); >> hold on >> plot(t,cos(t)); >> grid on; >> grid off >> set(gca,'xgrid','on','gridlinestyle','-.') xgrid, ygrid, zgrid : 각각의 좌표축에만 "grid"를 첨가. b) Gridlinestyle : "grid" Line의 style을 변경 Korea University of Technology and Education School of Mechatronics

Matlab Symbolic 연산 및 수식 그래프 Matlab 에서는 Symbolic 객체에 대한 Symbolic 연산이 가능하다.  Symbolic 객체의 더하기(+), 빼기(-), 곱하기(*), 나누기(/) 및 거듭제곱(^)등의 산술연산과 함수를 포함하는 다른 Matlab 함수를 사용하여 수행될 수 있다.  사용방법은 먼저 변수를 Symbolic으로 지정하여야 한다. >> syms x y >> a=[cos(x), -sin(x); sin(x), cos(x)]; >> b=[y,0;0,-y]; >> d=a*b d = [ cos(x)*y, sin(x)*y] [ sin(x)*y, -cos(x)*y] >> a a = [ cos(x), -sin(x)] [ sin(x), cos(x)] >> b b = [ y, 0] [ 0, -y] >> c=a+b c = [ cos(x)+y, -sin(x)] [ sin(x), cos(x)-y] Korea University of Technology and Education School of Mechatronics

그래프의 x 축의 범위를 한정하기 위해서는 다음과 같이 x 축의 한계값을 사용한다. ezplot(f,[a,b]) Symbolic 수식의 그래프 그리기 Symbolic으로 되어있는 수식을 그래프로 그리기 위해서는 ezplot을 사용한다. ezplot(f) 그래프의 x 축의 범위를 한정하기 위해서는 다음과 같이 x 축의 한계값을 사용한다. ezplot(f,[a,b]) >> syms x y >> f=1/(1+x*cos(x)+exp(x)); >> ezplot(f) >> grid on ezplot(f) ezplot(f,[-2,2]) Korea University of Technology and Education School of Mechatronics

V. 비선형 방정식 해 구하기 Korea University of Technology and Education School of Mechatronics

>> f=(sin(x)^2+cos(x)-1)/(12+2*sin(x))^4; >> ezplot(f) 1개 변수 비선형 방정식의 해 다음 비선형 방정식의 해를 구하시오 함수의 그래프 모양 >> syms x >> f=(sin(x)^2+cos(x)-1)/(12+2*sin(x))^4; >> ezplot(f) >> grid on Korea University of Technology and Education School of Mechatronics

Fzero(‘함수명(파일명)’,초기치) function f=fun1(x) f=(sin(x)^2+cos(x)-1)/(12+2*sin(x))^4; M-file : File name : fun1.m >> fzero('fun1',2) ans = 1.5708 Base workspace >> fzero('fun1',4) ans = 4.7124 초기치에 따라 값이 달라진다 Korea University of Technology and Education School of Mechatronics

>> x=fsolve('fun2',x0) x = 0.5671 function f=fun2(x) 비선형 연립방정식의 해 비선형 연립방정식의 해는 fsolve 함수를 이용하여 구할 수 있다.  fsolve 함수는 Optimization Toolbax내에존재하는 함수이므로 Optimization Toolbax를 설치해야 사용할 수 있다 다음 비선형 방정식의 해를 구하시오 Base workspace M-file : File name : fun2.m >> x=fsolve('fun2',x0) x = 0.5671 function f=fun2(x) f=[2*x(1)-x(2)-exp(-x(1));     -x(1)+2*x(2)-exp(-x(2))]; Korea University of Technology and Education School of Mechatronics

>> f1=2*x1-x2-exp(-x1); >> f2=-x1+2*x2-exp(-x2); 다음 비선형 방정식의 그래프를 그리시오 >> syms x1 x2 >> f1=2*x1-x2-exp(-x1); >> f2=-x1+2*x2-exp(-x2); >> ezplot(f1); >> hold on >> ezplot(f2); >> grid Korea University of Technology and Education School of Mechatronics