MATLAB 프로그래밍.

Slides:



Advertisements
Similar presentations
Ⅰ. 연산자 Ⅱ. 제어 구조. 연산자 : 할당 연산자 - 사용자가 정의한 변수에 임의의 값을 저장하는 기능 strvar = strVar1+ “ Hello ”
Advertisements

Python Ch.06 RaspberryPi Sejin Oh. Raspberry Pi Python  IDLE(Integrated Development Environment)  라즈베리 파이 배포본들은 일반적으로 파이썬과 파이썬 3 의 IDLE 파 이썬 개발 도구를.
MATLAB 의 사용.  초기 MATLAB 은 Cleve Moler 에 의해 Fortran 으 로 작성  현재는 미국의 MathWork 사에 의해 C++ 로 작성  Matlab 은 Matrix 계산에 뛰어난 능력을 가지고 있 으며 많은 이론의 실증 프로그램을 작성하는데.
1 08 배열. 한국대학교 객체지향연구소 2 C 로 배우는 프로그래밍 기초 2 nd Edition 배열  동일한 자료유형의 여러 변수를 일괄 선언  연속적인 항목들이 동일한 크기로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는.
MATLAB 기초강의 연세대학교 방사선학과 방사선영상 실험 실습. MATLAB 이란 ?  Matlab 이란 MATrix LABoratory 를 뜻하는 말로서, 수 치해석, 행렬연산, 신호처리 및 간편한 그래픽 기능 등을 통합하여 고성능의 수치계산 및 결과의 가시화 기능을.
1 MATLAB 프로그래밍. 2 MATLAB MATLAB이란? mathworks 사( 개발 수치해석 및 프로그래밍 환경을 제공하는 공학용 툴 특징 행렬 처리 용이 함수와 데이터의 그래프 표현 사용자 인터페이스 생성 및 다른.
4장 배열과 함수 한빛미디어(주).
MATLAB 개요와 응용 5장 2차원 그래프.
데이터형, 변수, 연산자 컴퓨터 응용 및 실습 I.
이산수학(Discrete Mathematics)
Mathematics for Computer Graphics
Gauss Elimination with scaled partial pivoting
응용 전산 및 실습 MATLAB – Chapter 4 그래픽
제2장 배열과구조.
C 프로그래밍 I.
4. Matlab-Simulink를 이용한 메카니즘 해석
축산 인식개선을 위한 농협의 추진 사례 ( ) 농협중앙회 축산지원단장 박인희.
기본 컴퓨터 프로그래밍 Lecture #6.
시스템 생명 주기(System Life Cycle)(1/2)
데이터 파일 C 데이터 파일과 스트림(Stream) 텍스트 파일 처리
Ch. 1 선형대수학: 행렬, 벡터, 행렬식, 선형연립방정식
시스템 생명 주기(System Life Cycle)(1/2)
자료 구조: Chapter 3 (2)구조체, 포인터
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
특수조명 Program Manual M.D.I Solution
Lesson 5. 레퍼런스 데이터형.
Ch.3 그래프 속성의 설정과 2차원 그래프.
부록 A. Matlab 사용법 Korea University of Technology and Education
Visual Basic 함수.
Y. Daniel Liang 길준민 · 정재화.
Ch1 MATLAB Environment 제1장 매트랩 환경.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Javascript Basic Sample Programs
프로그래밍실습 제 4 강.
CAS (Computer Algebra System) 소개
공학컴퓨터프로그래밍 Python 염익준 교수.
Medical Instrumentation
MATLAB 기초 1.1 기본적인 MATLAB 명령어 1.2 행렬과 벡터 연산 1.3 제어문 1.4 입출력
부록 A Matlab 활용.
MATLAB
JA A V W. 03.
인터넷응용프로그래밍 JavaScript(Intro).
Lesson 4. 수식과 연산자.
공업 수학-II 복소 해석(Complex Analysis) ( 학기)
기초 프로그래밍 Yang-Sae Moon Department of Computer Science
Report #3 - due: 4/6 100*100의 2개의 희소 행렬 A, B를 전달 받아서 이들의 덧셈을 구하고, 그 결과의 행렬 C를 반환하는 add_sparse_matrix(A, B, C)를 다음과 같이 작성하라. 희소 행렬은 sparse_matrix 타입으로 표현된다.
MATLAB(6.5)의 기본 사용법 오 승 택.
Matlab 기초 한밭대학교 전기공학과 담당교수 : 이 경 복.
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Medical Instrumentation I - Report 03 -
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
17장. 제어문과 내장 함수 제어문 내장 함수 제어문 내장 함수.
CAS (Computer Algebra System) 소개
Signature, Strong Typing
Signature, Strong Typing
Signature, Strong Typing
빛 의 합 성 과 학 1 학년 Ⅱ. 빛 > 2. 빛의 색( 8/8 ) [초기 화면]
Introduction to MATLAB
7주차: Functions and Arrays
CAS (Computer Algebra System) 소개
2.7 행렬 (Matrices] 이산수학 (Discrete Mathematics) Matrix Reloaded
이산수학(Discrete Mathematics)
2.1 MATLAB 환경 2.2 배정 2.3 수학적 연산 2.4 내장함수의 사용 2.5 그래픽 2.6 다른 자원
16장. 변수, 연산자, 사용자 정의 함수 변수 배열과 객체 연산자 함수.
3장 MATLAB 프로그래밍 3.1 M-파일 3.2 입력-출력 3.3 구조 프로그래밍 3.4 내포화와 들여쓰기
Introduction to Computer System 컴퓨터의 이해 3: 데이터 표현
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

MATLAB 프로그래밍

MATLAB MATLAB이란? 특징 mathworks 사(http://www.mathworks.com) 개발 수치해석 및 프로그래밍 환경을 제공하는 공학용 툴 특징 행렬 처리 용이 함수와 데이터의 그래프 표현 사용자 인터페이스 생성 및 다른 프로그래밍 언어 연결 가능 다양한 내장 함수 및 툴박스 제공 플랫폼 독립적

MATLAB 데스크탑

MATLAB 스칼라 값 배정 소수점이하 15자리까지 표현 소수점이하 4자리까지 표현

MATLAB 벡터, 행렬 행 벡터 열 벡터 행렬 a = [ 1 2 3 4 5 ] c = [ 1 2 3 ; 4 5 6 ; 7 8 9 ] c(2,3) (행번호, 열번호) 6출력

MATLAB 벡터, 행렬 콜론(:) 연산자 1부터 5까지 1씩 증가하는 행벡터 1부터 3까지 0.5씩 증가하는 행벡터 인덱스 2~4까지의 벡터 추출

MATLAB 벡터, 행렬 콜론(:) 연산자 2행, 인덱스 생략 3행, 1열과 2열 2~3행, 1~2열로 구성된 2x2 행렬 반환

MATLAB 벡터, 행렬 linspace(x1, x2, n) logspace(x1, x2, n)

MATLAB 벡터, 행렬 eye(n) zeros(n,m) ones(n,m) … nxn 단위행렬(identity matrix) nxm 0행렬 ones(n,m) mxm 행렬(모든 원소의 값이 1) …

수학 연산 >> y = pi / 4 >> -y^2.45 >> (-y)^2.45 우선순위 연산자 설명 1 ^ 지수 계산 2 - 음부호 3 * / 곱셈, 나눗셈 4 \ 왼쪽 나눗셈(행렬 연산) 5 + - 덧셈, 뺄셈 >> y = pi / 4 >> -y^2.45 >> (-y)^2.45

행렬 연산 Operation MATLAB Form Comments Array Addition a + b Array addition and matrix addition are identical Array Subtraction a – b Array subtraction and matrix subtraction are identical Array Multiplication a . * b Element-by-element multiplication of a and b. Both arrays must be the same shape, or one of them must be a scalar Matrix Multiplication a * b Matrix multiplication of a and b. The number of columns in a must equal the number of rows in b. Array Right Division a ./ b Element-by-element division of a and b : a(i,j) / b(i,j). Both arrays must be the same shape, or one of them must be a scalar. Array Exponentiation a. ^ b Element-by-element exponentiation of a and b : a(i,j) ^ b(i,j). Both arrays must be the same shape, or one of them must be a scalar

행렬 연산 예제 덧셈/뺄셈 곱셈 외적(outer product) a = [ 1 2 3 4 5 ]; b = [ 2 4 6 8 10]; c = a + b 곱셈 a = [ 1 2 3 4 5 ]; b = [ 2 4 6 8 10 ]’ c = 2 * a a*b 외적(outer product) b * a

행렬 연산 예제 지수 정방행렬 ^지수승 배열 연산자(.연산자) 각 원소끼리 연산 .* ./ .^

내장 함수 Trigonometric Functions >> sqrt(2) ans = 1.4142 Function Description cos(x) Calculates cos x, with x in radians. acos(x) Calculates cos-1x, with the results in radians. sin(x) Calculates sin x, with x in radians. asin(x) Calculates sin-1x, with the results in radians. tan(x) Calculates tan x, with x in radians. atan(x) Calculates tan -1x, with the results in radians. mod(x,y) Remainder, or modulo, function. sqrt(x) Calculates the square root of x. >> sqrt(2) ans = 1.4142

내장 함수 Round, Exponential, Logarithm Function Description [value,index] = max(x) Returns the maximum value in vector x, and optionally the location of that value. [value,index] = min(x) Returns the minimum value in vector x, and optionally the location of that value. ceil(x) Rounds x to the nearest integer towards positive infinity : ceil ( 3.1 ) = 4 and ceil ( -3.1 ) = -3 fix(x) Rounds x to the nearest integer towards zero : fix ( 3.1 ) = 3 and fix ( -3.1 )= -3 floor(x) Rounds x to the nearest integer towards minus infinity : floor ( 3.1 ) = 3 and floor ( -3.1 ) = -4 round(x) Rounds x to the nearest integer exp(x) Calculates ex. log(x) Calculates the natural logarithm log e x. log2(x) Calculates the natural logarithm log 2 x.

내장 함수 Complex & Rational Numbers Help help 함수명 Function Description abs(x) Calculates |x|. angle(x) Returns the phase angle of the complex value x, in radians conj(z) Calculates conjugate of z. imag(z) Calculates imaginary part of z. real(z) Calculates real part of of z. rat(x) Calculates rational approximation of x rats(x) Calculates rational output of x

함수 활용 예 자유낙하 속도 측정 t=[0:2:20]’; g=9.81; m=68.1; cd=0.25; v=sqrt(g*m/cd)*tanh(sqrt(g*cd/m)*t) v : 속도(m/s) g : 중력가속도(9.81m/s2) m : 질량(kg) cd : 항력계수(kg/m) t : 시간(s) v = 18.7292 33.1118 42.0762 46.9575 49.4214 50.6175 51.1871 51.4560 51.5823 51.6416

그래픽 표현 Figure plot stem stairs bar compass pie semilog semilogx semilogy plot stem stairs bar compass pie

그래픽 표현 Label Title Legend xlabel (‘x_string’) ylabel (‘y_string’) title (‘string’) Legend Legends can be created with the legend function. The basic form of this function is legend(‘string1’, ’string2’, . . . , pos) pos 설명 Automatic “best” placement (least conflict with data) 1 Upper right-hand corner (default) 2 Upper left-hand corner 3 Lower left-hand corner 4 Lower right-hand corner -1 To the right of the plot

그래픽 표현 Colors & Styles Color Marker Style Line Style y yellow . point - solid m magenta o circle : dotted c cyan x x-mark -. dash-dot r red + plus -- dashed g green * star <none> no line b blue s square w white d diamond k black v triangle (down) ^ triangle (up) < triangle (left) > triangle (right) p pentagram h hexagram no marker

그래픽 표현 x=0:pi/100:2*pi; y1=sin(2*x); y2=2*cos(2*x); plot(x,y1,'k-o',x,y2,'b--v') title('Plot of f(x)=sin(2x) and its derivative') xlabel('x') ylabel('y') legend('f(x)','d/dx f(x)',4) grid on

그래픽 표현 사랑의 방정식 x=[-4.15:0.001:4.15]; a=17; b=-16*abs(x); c=17*x.^2 - 225; y1=(-b+sqrt(b.^2 - 4*a.*c))/(2*a); y2=(-b-sqrt(b.^2 - 4*a.*c))/(2*a); plot(x,real(y1)) hold on plot(x,real(y2)) grid on

스크립트 파일 M-파일 작성 scriptdemo.m g=9.81; m=68.1; t=12; cd=0.25; v=sqrt(g*m/cd)*tanh(sqrt(g*cd/m)*t) >> scriptdemo

함수 파일 함수 형식 function outvar = funcname(arglist) % help comments 예제) freefallvel.m function velocity = freefallvel(m,cd,t) % 자유낙하 속도 계산 % 입력) m:질량(kg), cd:항력계수, t:시간(초) % 출력) t초 후 낙하 속도 출력 g = 9.81; velocity=sqrt(g*m/cd)*tanh(sqrt(g*cd/m)*t); >> freefallvel(68.1, 0.25, 12) function outvar = funcname(arglist) % help comments statements outvar = value

여러 개의 값 반환 stats.m function [ mean, stdev ] = stats (x) n = length(x); mean = sum(x) / n; stdev = sqrt ( sum((x-mean).^2 / (n-1))); >> y = [ 8 5 10 12 6 7.5 4 ] >> [ m , s ] = stats(y) m = 7.5000 s = 2.8137

input 함수 형식 설명 예제 n = input(‘prompt string’) m = input(‘Mass (kg): ’) >> Mass (kg): 68.1_ name = input(‘Enter your name: ’,‘s’) % 문자열 입력 >> enter your name: Matlab_

disp 함수 형식 disp( value ) 설명 명령창에 value 값 출력 예제

fprintf 함수 형식 설명 포맷 / 제어 코드 fprintf( ‘ format ’, arglist … ) %d 정수 포맷 %e e를 사용하는 과학 포맷 %E E를 사용하는 과학 포맷 %f 소수 포맷 %g %e나 %f 중에서 간단한 포맷 \n 새로운 줄로 시작 \t 탭

fprintf 예제 fprintfdemo.m function fprintfdemo x = [ 1 2 3 4 5 ]; y = [ 20.4 12.6 17.8 88.7 120.4 ]; z = [ x ; y ]; fprintf(‘ x y \n’); fprintf(‘ %5d %10.3f \n’, z); 결과 1 20.400 2 12.600 3 17.800 ……

대화식 M-파일 작성 freefallinteract.m 실행 function velocity = freefallinteract g = 9.81; m = input( ‘무게(kg) : ’); cd = input( ‘항력계수(kg/m) : ’); t = input( ‘시간(s) : ’); disp( ‘낙하속도 (m/s) : ’ ) disp( sqrt(g*m/cd)*tanh(sqrt(g*cd/m)* t) ) 실행 >> freefallinteract 무게(kg) : 68.1 항력계수(kg/m) : 0.25 시간(s) : 12 낙하속도(m/s) : 50.6175

함수호출 freefallinteract.m 수정 function velocity = freefallinteract m = input( ‘무게(kg) : ’); cd = input( ‘항력계수(kg/m) : ’); t = input( ‘시간(s) : ’); disp( ‘낙하속도 (m/s) : ’ ) disp( freefallvel(m,cd,t) ) freefallvel.m의 freefallvel함수를 호출

관계/논리 연산 관계연산자 논리 연산자 x == 0 == Equal unit ~= ‘m’ ~= Not equal < Less than s > t > Greater than 3.9 <= a / 3 <= Less than or equal to r >= 0 >= Greater than or equal to ~x ~ Not x & y & And x | y | Or

판정 : if 구문 형식 설명 예제 if condition statements end if grade >= 60 disp( ‘ passing grade: ’ ) disp( grade ); if grade >= 60, disp( ‘ passing grade: ’ ), end

에러함수 : error 형식 설명 예제 error( msg ) 텍스트 메시지 msg를 출력하고 m-파일 종료 if x == 0, error(‘Zero value encountered’), end f = 1 / x;

if / else 구문 mysign.m function sgn = mysign (x) % mysign(x) : return 1 if x is greater then zero % -1 if x is less then zero % 0 if x is equal to zero if x > 0 sgn = 1; elseif x < 0 sgn = -1; else sgn = 0; end

for 구문 형식 설명 예제 for index = start : step : finish statements end index값을 start부터 finish까지 step씩 증가/감소 시키면서 statements를 반복 실행 예제 i = 0; for t = 0:0.02:50 i = i + 1; y(i) = cos(t) t = 0:0.02:50; y = 5 * cos(t)

메모리 사전 할당 t = 0:0.01:5; for i = 1:length(t) if t(i) > 1 y(i) = 1 / t(i); else y(i) = 1; end t = 0:0.01:5; y = ones( size(t) ); for i = 1:length(t) if t(i) > 1 y(i) = 1 / t(i); end 배열의 크기가 예측 가능하면 미리 메모리를 할당

while 구조 형식 설명 예제 while condition statements end while x > 0 while(1) x = x – 3; if x < 0, break, end disp( x ) x = x – 5; end end

Gauss Elimination function [ x ] = GaussNaive( A, b ) % Gauss elimination without pivoting % input: % A = coefficient matrix % b = right hand side vector % output: % x = solution vector [m,n] = size(A); if m~=n, error('Matrix A must be square'); end nb = n+1; Aug = [A b];

Gauss Elimination % forward elimination for k = 1:n-1 for i = k+1:n factor = Aug(i,k)/Aug(k,k); Aug(i,k:nb) = Aug(i,k:nb)-factor*Aug(k,k:nb); end % back substitution x = zeros(n,1); x(n) = Aug(n,nb)/Aug(n,n); for i = n-1:-1:1 x(i) = (Aug(i,nb)-Aug(i,i+1:n)*x(i+1:n))/Aug(i,i);

Gauss Elimination 실행결과 x1 + x2 + 2x3 = 9 2x1 + 4x2 – 3x3 = 1 >> b = [ 9 1 0 ]’; >> GaussNaive(A,b) ans = 1 2 3

Homework Gauss-Jordan Elimination Make a MATLAB program ‘GaussJordan.m’ runs as follows >> A = [ 1 1 2 ; 2 4 -3 ; 3 6 -5 ]; >> b = [ 9 1 0 ]’; >> GaussJordan(A,b) ans = 1 0 0 1 0 1 0 2 0 0 1 3 Refer two samples: GaussNaive.m, GaussianElimination.m Reference for MATLAB syntax: Matlab.pdf