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

Slides:



Advertisements
Similar presentations
Tcl/Tk 민 인학 한국 Tcl/Tk 커뮤니티.
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++ 통합 환경 들어가기.
Lynx, Opera, and Other Browsers 인공지능연구실. Contents Lynx (Text 기반의 Browser) 역사 및 특징 사용법 및 기능 Opera (Small Browser) 역사 및 특징 사용법 및 기능 과 뉴스 그룹 사용법 Other.
EMLAB Modeling of Digital Communication Systems using Simulink Chap2. Sinusoidal Simulink Model Chap3. Digital Communications BER Performance in AWGN (BPSK.
Computer Graphics 윈도우 프로그래밍 김 창 헌김 창 헌. Computer Graphics 2 윈도우 시스템  윈도우  스크린 위에서 독립적으로 움직일 수 있는 사각형 영역  윈도우 시스템  유저와 어플리케이션간의 그래픽 스크린을 통한 인터페이스 를.
지적기초측량 경일대학교/부동산지적학과.
MATLAB 개요와 응용 5장 2차원 그래프.
2. 문학의 활동 방법 [1] 문학의 수용 01 소설가 구보 씨의 일일 작가 소개 작품 정리 읽기 중 활동 학습 활동.
국립생물자원관 교육콘텐츠 02_강낭콩, 싹터요!.
표 및 그래프 작성.
Mathematics for Computer Graphics
응용 전산 및 실습 MATLAB – Chapter 4 그래픽
WAP, Stinger, Bluetooth 순천향 대학원 전산학과 1학기 정재헌.
C++ Espresso 제1장 기초 사항.
R 실행. 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
고해상도 잉크제트 프린터 사용자 매뉴얼 베스트마킹 Best Marking
SQL*Plus - Oracle ISQL -
제6장 제어(Control) 6.1 구조적 프로그래밍(Structured Programming)
시스템 생명 주기(System Life Cycle)(1/2)
Toad for SQL Server 제품 소개서 – 프로넷소프트㈜.
HTML CSS 자바스크립트 무작정 따라하기
제7장 제어구조 I – 식과 문장.
 13장. 배시쉘 프로그래밍.
시스템 생명 주기(System Life Cycle)(1/2)
2. PHP 프로그래밍 웹 브라우저로 데이터 전송 주석 작성하기 변수/상수 문자열/숫자형 HTML 폼 만들기
JavaScript.
Ch.3 그래프 속성의 설정과 2차원 그래프.
자료구조 김현성.
부록 A. Matlab 사용법 Korea University of Technology and Education
신경망(3).
Chapter 4 – 연 산 자 Outline 4.1 산술 연산자 4.2 관계 연산자 4.3 동등 연산자 4.4 논리 연산자
Communication and Information Systems Lab. 최정훈
MATLAB 개요와 응용 1장 MATLAB 시작하기
Chapter 3 Flow of Control
MINITAB for Six Sigma.
Microwave & Millimeter-wave Lab.
Medical Instrumentation
Cafe24 쇼핑몰 구축방법 전략연구소 교육팀 권계영 대리.
MATLAB 기초 1.1 기본적인 MATLAB 명령어 1.2 행렬과 벡터 연산 1.3 제어문 1.4 입출력
부록 A Matlab 활용.
개정판 누구나 즐기는 C언어 콘서트 제6장 반복문 출처: pixabay.
기초 프로그래밍 Yang-Sae Moon Department of Computer Science
강의 소개, 자료구조의 개념, SW 개발과 자료구조
4. 도표 다루기.
Matlab 기초 한밭대학교 전기공학과 담당교수 : 이 경 복.
기계학습과 R 실습.
Medical Instrumentation I - Report 03 -
DataScience Lab. 박사과정 김희찬 (월)
4장 - PHP의 표현식과 흐름 제어-.
1장. HTML5 소개 To Flash 정보영재세미나 1 김태영교수님 홍창의.
17장 웹 사이트 제작 완성 한빛미디어(주).
U N I X 창원대학교 전자계산학과 김병찬.
작성일 참고서적 – Programing Game AI by Example
Java 3장. 자바의 기본 구조 I : 변수, 자료형, 연산자 public class SumTest {
사회생활과 준법의식 사회(일반사회) 중학교 2학년 2학기 Ⅶ. 사회생활과 법규범
MATLAB 기초 by 이대익 1.
Introduction to MATLAB
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 08. 조건에 따른 흐름의 분기.
이산수학(Discrete Mathematics)
Interactive Data Language
반복문의 기능 반복문 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 while문
2.1 MATLAB 환경 2.2 배정 2.3 수학적 연산 2.4 내장함수의 사용 2.5 그래픽 2.6 다른 자원
이번 시간에는... 지난 시간까지 2회차에 걸쳐 WML의 택스트 포맷, 이미지 처리, 페이지 이동, 태스크 수행과 이벤트 처리 및 WML 사용자 Input 처리 태그 등, WML 개발에 대해서 알아보았습니다. 이번 시간에는 2회차에 걸쳐, WML 스크립트 개발에 대해서.
퍼지 시스템 (요약).
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
Excel 2007을 이용한 통계학 제 2 장 자료의 정리.
DataScience Lab. 박사과정 김희찬 (화)
PHP 기초문법 PHP를 공부하는데 있어 가장 기초가 되는 PHP기초문법에 대해서 배워 봅니다.
Presentation transcript:

MATLAB 의 사용

 초기 MATLAB 은 Cleve Moler 에 의해 Fortran 으 로 작성  현재는 미국의 MathWork 사에 의해 C++ 로 작성  Matlab 은 Matrix 계산에 뛰어난 능력을 가지고 있 으며 많은 이론의 실증 프로그램을 작성하는데 사 용되고 있다.  Matlab 코딩 체계는 우리에게 친숙한 수학적인 기 호와 간단한 C 문법으로 행해진다.

1. 수학과 관련된 계산 2. 알고리즘 개발 3. 상황 Modeling 과 Data 분석 4. 여러 가지 과학과 공학적인 그래픽적 표현 5. GUI 에 의한 Application 개발 6. 제어분야의 프로그래밍 7. 네트워크 시뮬레이션

 행렬을 기본으로 계산하기 때문에 MATLAB 의 기본 데이 터 요소는 차원의 제한이 없는 Array( 배열 ) 이다.  제어 및 이미지 프로세싱 등 여러 분야에 적용을 하기 위 해 ToolBox 를 제공하고 있다.  ToolBox 란 신호 처리, 통계학, 영상 처리, 제어, fuzzy logic, 재정 등 여러 분야에 대한 적용 가능한 도구를 제 공한다.  ToolBox 는 MATLAB 의 기본 제공되는 명령어들과 외부 언어로 구성이 되어있으며 제공되는 소스코드를 이용하 여 사용자가 추가적인 응용을 가능하도록 지원한다.  외부 프로그램, 즉, C, Fortran 과 link 해서 이용할 수 있 는 mex 기능도 제공하고 있다.

 File/Set Path  작성한 파일이 있는 위치를 등록하여 MATLAB 에서 사용 할 수 있도록 한다.

 여러 개의 함수들을 사용, 사용자의 목적에 맞는 실행 file 을 만들기 위해서는 MATLAB 의 함수들로 구성된 M-file 을 만들어야 한다.  M-file 은 text editor( 예를 들면 윈도우에 있는 notepad) 를 사용하여 MATLAB 의 명령어를 차례로 입력하면 된다.  M-file “Inv_A.m” 의 내용 A=[1 2 4; 3 5 6; 6 2 1] B=inv(A)  만들어진 M-file 을 실행시키기 위해서는 명령창에서 Inv_A 라고 입력하고 enter 를 치면 Inv_A 에 포함된 명령들을 수 행한다.

>> help mean : Command Window 에 해당 내용 이 출력된다. >> lookfor covariance : more general information >> helpwin: small window, hypertext >> helpdesk: HTML browser 가 뜬다.

 직각 수치 행렬을 기본적인 자료의 형식으로 취급한다.  행렬의 원소 : 실수, 복소수, 문자  MATLAB 에서 사용되는 행렬 입력방식 ◦ MATLAB 명령창 ◦ 내부명령 또는 함수들을 사용하여 행렬을 생성 ◦ M- 파일 내에서 행렬을 구성 ◦ 외부의 자료 파일로부터 행렬을 불러들임 (*.mat,*.dat,*.txt)  MATLAB 은 다른 프로그래밍 언어들과 달리 차원의 선 언이나 형선언이 필요 없다. 컴퓨터가 사용 가능한 크 기까지 자동적으로 저장공간을 할당해 준다.

 전체 원소들은 대괄호 [ ] 로 감싼다.  원소들은 빈칸 또는 쉼표를 사용하여 분리한다.  원소의 끝에 세미콜론 ( ; ) 을 붙이면 한 행의 종료를 의미한다.  Command Window 에 행렬을 입력하는 예 >> A=[1 2 3; 4 5 6; 7 8 9] A =

 더블 클릭하면 Array Editor 가 활성화 된다.  Array Editor 에 행렬값을 입력한다

 수치, 함수, 수식, 문자 등 : 배열 원소는 스페이스로 구별 ; 세미콜론이 없으면 입력한 내용을 실행 하고 다음 라인에 출력한다. ; 세미콜론이 있으면 입력한 내용을 실행 하고 화면에 보여주진 않는다. ; 세미콜론이 문장 안에 있으면 행을 구별한다

 기존의 행렬보다 차원이 큰 범위에 원소를 삽입하면 나머지는 0 이 채워지고 새로운 행렬을 생성할 때 자신의 행렬 일부를 이용하여 만 들 수 있는데 이를 부행렬이라한다.  현재 X 는 1*3 행렬로 [ ] 저장되어 있 다. >> x(5)=abs(x(1)) x = 본래 있던 X 행렬에 5 번째 열의 값을 만들고 그 값을 abs(x(1)) 로 저장한다. 4 번째 열은 값을 지정하지 않았으므로 0 이 채워진다

 작은 행렬을 이용하여 큰 행렬에 추가할 수도 있고, 반대로 할 수 도 있다. >> z=[1 3 5]; A=[A;z] A = >> B = A( 1, 2 ) B = 2 >> C = A( 2, : ) C = >> D = A( :, 3 ) D = >> X = 0 : 0.1 : 1; >> Y = sin ( 2 * pi * X ) ; A 행렬의 1 행 2 열 값을 B 행렬에 저장 A 행렬의 2 행 모든 열 값을 C 행렬에 저장 A 행렬의 모든 행, 3 번열 값을 C 행렬에 저장 X 행렬에 0 부터 0.1 간격으로 1 까지 저장. 1X11 행렬 각각의 X 행렬값을 연산하여 Y 행렬에 저장. 1X11 행렬

 MATLAB 에서는 선형 대수학이나 신호 처리 분야에서 취급되는 특별 한 행렬들을 생성하는 함수들을 제공한다.  compan : 동반 행렬 (Companion matrix)  diag: 대각 행렬 (Digonal matrix)  gallery : 시험 행렬 (Test matrix)  hadamard : Hadamard 행렬  hankel : Hankel 행렬  hilb: Hilbert 행렬  invhilb : Hilbert 행렬의 역행렬  kron : Kronecker 텐서 곱 (tensor product)

 magic : 마방진 ( 각각의 행, 열, 대각선을 합한 값 들이 모두 같은 행렬 )  pascal : Pascal 의 삼각형  toeplitz : Toeplitz 행렬  vader : Vandermonde 행렬  그 이외에 실용적인 행렬들  zeros : 0 만으로 구성된 행렬  ones : 1 만으로 구성된 행렬  eye : 단위 행렬 >> k=magic(3) k = >> o= zeros(3) o = >> t=zeros(2,3) t = 0 0 0

 MATLAB 은 " 열 벡터 " 방향으로 연산한다. Transpose 는 ’ 를사용한다. A 의 행을 열로 변경 >> A = [ 1 1 1; 1 2 3; 1 3 6] A = >> sum(A) ans = >> k=sum(A) k = >> A' ans = >> e = A' e =

 Summation and Subtract ◦ A + B & A – B : The same dimensions. ◦ 해당하는 각각의 행렬 값을 더하거나 뺀다  Product ◦ A * B : A is m * n matrix & B is n * p matrix, ◦ the result is m * p matrix.  Division ◦ Left division : X = A \ B → inv(A)*B ◦ Right division : X = A / B → A*inv(B)

X = A / B → A*inv(B) >> a= [1 2; 3 4] a = >> b= [0 1; 2 3] b = >> c = a + b c = >> a-b ans = 1 1 >> a * b ans = >> inv(a) ans = >> inv(b) ans = >> x = a/b x = x = a/b = a * inv(b) x(1,1) = (a11 * b11) + (a12 * a21) =(1 * -1.5) + (2 * 1) = 0.5 x(1,2) = (1 * 0.5) + (2 * 0) = 0.5 x(2,1) = (3 *-1.5) + ( 4 * 1) = -0.5 x(2,2) = (3 * 0.5 ) + (4 * 0) = 1.5

 x. * y = [ x ij * y ij ]  x. / y = [ x ij / y ij ]  x. ^ y = [ ] .*./. ^ 기호들은 각각의 배열값 에만 적용된다. a = b = >> a.*b ans = >> a./b Warning: Divide by zero. ans = Inf >> a.^b ans = >> a.\b ans =

 rand : 0 과 1 사이의 값으로 균등 분포를 갖는 단일 난수를 발생  rand(1, n) : 0 과 1 사이의 값으로 균일 분포를 n 개의 난수 행벡터를 만든다.  rand(n) : 0 과 1 사이의 값으로 균등 분포를 갖는 난수들로 이루어진 nXn 행렬을 만든다. >> rand ans = >> rand ans = >> a = rand(1, 4) a = >> b = rand(2, 4) b = >> c = rand(3) c = >> d = rand(3, 1) d =

Relational Operations 의 결과 true 이면 1, false 이면 <Less than <=Less than or equal to >Greater than >=Greater than or equal to ==Equal to ~=~=Not equal to >> y= [ 4 5 6] y = >> k = y > 3.0 k = >> f = y > 5.0 f = 0 0 1

 z = n2.*log(n2+(n2==0));  a = n2+(n2==0); >> n2 = [3 0] n2 = 3 0 >> z = n2.*log(n2+(n2==0)) z = >> a = n2+(n2==0) a = 3 1

 M-file : Matlab 언어로 쓰여진 파일들 (files)  연속적인 Matlab 문장들 ( 명령어들 ) 을 수행하는 script mode ◦ 파일 이름은 어떠한 이름으로도 사용 가능  입력 매개변수와 출력 매개변수를 다루는 function mode ◦ 파일의 이름은 function 이름과 가능한 같게 한다  text editor 를 이용하여 M-file 작성  command window 에서 M-file 을 부르거나, 다른 M-file 내에 서 호출  비교 ◦ function : 변수가 function workspace 에 등록됨. ◦ script : 변수가 base workspace(command workspace) 에 등록됨. ( 전역변수 )

 파일 첫줄에 ‘function’ 이라는 단어가 있는 M- 파일이 함수 파일 function 변수 = 파일이름 ( 인자 ) function [Pccoeff, Pcvec] = pca(data, N)  스크립트와의 큰 차이점은 ‘function’ 이 없으면 스크립트로 인식  파일이름의 이름으로 사용된 이름이 함수의 이름과 같아야 함  ‘%’ 기호 뒤에 나오는 문장들은 주석으로 인식되어 무시  ‘%’ 기호와 함께 적어 놓은 설명 부분은 MATLAB 프롬프트에서 ‘help mean’ 이라고 입력하였을 때 화면상에 표시  첫 번째로 ‘%’ 기호 이후의 주석은 ‘lookfor mean’ 이라고 입력하면 화 면에 ‘mean’ 이라는 단어를 포함하는 항목을 모두 표시

 Matlab – Command Window 에서 fact(2) 를 해보자. ◦ 다음과 같은 메시지가 나온다 ??? Undefined command/function 'fact'. 작성한 후 디스크 모양의 Save 를 클릭하면 저장 화면이 뜨고, 저장할 이름에 fact 라고 되어 있다. prod.m 함수는 입력 매개변수로 주어진 벡터를 구성하는 각각의 원소에 대한 곱을 반환하는 함수 (matlab 에서 지원 ) text editor 실행

 disp.m : 주어진 ‘ 메시지 ’ 문자열을 화면에 출력. ◦ disp(‘ 메시지 ’)  rem.m : 주어진 배열 a,b 에 대해 a./b 를 계산하여 나머지들을 반환한다. ◦ Y = rem(a, b)  fix.m : 주어진 배열 X 의 원소들의 소수부분을 제거하고 정수로만 이루어진 배열을 만든다 ◦ Y = fix(X)

 임의의 벡터 x 가 홀 / 짝수를 구별하는 exe_fc.m 함수를 작성한다. ◦ 입력이 없으면 error 메세지 출력

for 변수 = 시작값 : 증가분 : 최종값 end k = i+2 는 어떤 결과가 나올까 ?

 n! 의 결과가 100 을 넘어가기 전의 “n!’ 의 “n” 을 구하시오 while 논리적인 조건 end % disp 대신 sprintf 로 변경한 결과

 C 언어에서와 동일한 break, continue, return 명령어 지원  try, catch : 예외 처리 기능 ◦ try 다음에 나오는 명령문중에서 error 가 발생하면 실행을 중단하고, catch 뒤에 나오는 명령문을 실행한다. catch 에서도 error 가 발생하면 제어권을 matlab command window 로 돌려준다. ◦ 일종의 변형된 if/else 문이다 try … catch … end

 2, 3, 4 차원 배열 등의 다차원 배열 사용 가능  3 차원 배열 예  다차원 배열을 만드는 함수들 ◦ ones.m, zeros.m, rand.m, randn.m, cat.m, reshpae.m, repmat.m 등

 Line Plots : plot.m, ploty.m, loglog.m etc  Bar Plots : bar.m, barh.m etc  Scatter Plots  Pie Charts  Contour Plots 와 Mesh  plot3 와 surf

% 그래프가 그려진 후 다음 명령을 실행해보자. % 어떤 변화가 발생하는가 ? >> xlabel('test plot x') >> ylabel('test plot y'); >> title('plot 연습 ') 선 지정 : 빨간 쇄선, 별마크

 Grid : 그래프의 눈금 표시에서의 격자를 설정 ․ 해제한다.  Box : 축 상자를 설정 ․ 해제한다.  제목과 축의 라벨들은 title, xlabel, ylabel 을 사용하여 첨가  text(x,y,S) : 좌표 (x,y) 에 문자열 S 를 첨가한다.  Gtext : 마우스를 사용하여 대화식으로 텍스트를 첨가  axis([xmin xmax ymin ymax]) 는 현재의 그래프의 비율을 주어진 값 으로 설정  hold on : 현재의 그래프에 그래프를 더 추가 (cf. hold off)  figure : 다중 그림창을 생성. figure(n) 은 n 번째의 그림창을 활성화함.  하나의 figure 는 subplot 명령을 사용하여 나뉘어 질 수 있음.  zoom on 으로 설정해 두면, 마우스로 그림창을 확대할 수 있음.

 fplot 명령은 y = f(x) 형태인 함수 값을 지정된 한계 사이에서 그래프를 정 확하게 그려주는 명령  y = x^2 + 4*sine(2x) -1 그래프 그리기 fplot(‘function’, limits, line specifiers)