MATLAB 기초강의 연세대학교 방사선학과 방사선영상 실험 실습
MATLAB 이란 ? Matlab 이란 MATrix LABoratory 를 뜻하는 말로서, 수 치해석, 행렬연산, 신호처리 및 간편한 그래픽 기능 등을 통합하여 고성능의 수치계산 및 결과의 가시화 기능을 제공하는 프로그램이다. Matlab 은 이용하고자 하는 분들의 전공에 도움을 주 고자 toolbox 를 가지고 있다. toolbox 란 신호 처리, 통 계학, 영상 처리, 제어, fuzzy logic, 재정, 화학 공정, 등등, 즉, toolbox 란, 해당 전공 부분의 내용을 심도 있게 지원하는 함수들의 도서관과 같은 것이다.
Matlab 코딩 체계는 우리에게 친숙한 수학적 인 기호와 간단한 C 문법으로 행하여 지는데, 전형적인 이용 범위는 다음과 같다. 수학과 관련된 계산 알고리즘 개발 상황 모델링과 data 분석 Matlab 여러 가지 과학과 공학적인 그래픽적 표현 GUI(Graphical User Interface) 에 의한 에플리케 이션 개발
MATLAB 의 특징 행렬 데이터가 기본 연산 M file 을 사용한 프로그래밍 Toolbox 심볼로 이루어진 수식을 계산하는 기호 계산 GUI 프로그래밍 SIMULINK
왜 Matlab 을 배워야 하는가 ? 위의 적분의 프로그래밍에 대해 생각해 보자. Matlab 에서 위와 같은 문제는 >> y=int('sin(x)'); >> ezplot(y); Matlab 은 강력한 수학적인 능력을 갖고 있고, 또한, 쉽게 주어진 상 황을 코딩화할 수 있다.
MATLAB 시작하기 Workspace Command Windows Matlab 의 메인 창 역할을 하면서 사용자로부터 입력을 받아 연산을 수행한 후 다시 사용자가 알아볼 수 있는 형태로 출력하는 역할, 만약 프로그램의 오류 등으로 인한 에러 메시지도 Command Windows 에 나타나게 된다. 현재 실행되어 있는 MATLAB 내의 변수들의 목록
MATLAB 의 Help 사용하기 1 Help 사용법 >> Help topic_name
MATLAB 의 Help 사용하기 2
MATLAB 을 이용한 행렬계산 1 variable = expression * variable : 변수, 기본적으로 타 language 에서의 지원 변수 와 거의 유사한 형태를 지원 EX. >> a = [1,2,3;4,5,6;7,8,9] a = >> 주석문 처리는 문장앞에 “%”. 행렬에서 행 구분은 “;”, 열 구분은 “ ” 또는 “,”. 수식 표현 뒤에 “;” 를 붙이면 결 과값이 Command Windows 에 출력되지 않는다. 입력한 행렬은 Workspace 에 서 확인 가능. 콜론 (:) 을 사용해서 증가나 감 소하는 벡터를 쉽게 만들수 있 다.
MATLAB 을 이용한 행렬계산 2 >> a(1,3) ans = 3 >> a(1,3)=4 a = >> a(1:2,3) ans = 4 6 >> a(1,1:3) ans = >> a(1,:) ans = >> a(:,:) ans = >> i = 0:0.1:0.5 i =
MATLAB 을 이용한 행렬계산 3 행렬의 사칙연산 더하기 + 행렬간의 차원이 같아야 한다. 빼기 - 행렬간의 차원이 같아야 한다. 행렬간 곱하기 * 행렬간의 내부 차원이 같아야 한다. 행렬간 나누기 / (AB¹) 행렬의 행렬식이 존재해야 한다. 행렬간의 내부 차원이 같아야 한다. \(A¹B) 행렬요소간 곱하기.* 행렬간의 차원이 같아야 한다. 행렬요소간 나누기./ 행렬간의 차원이 같아야 한다.
MATLAB 을 이용한 행렬계산 4 >> A = [ 1 2 ; 3 4 ] A = >> B = [ 3 4 ; 5 6 ] B = >> A+B ans = >> A-B ans = >> A*B ans = >> A.*B ans = >> A/B ans = >> A\B ans = >> inv(A)*B ans = >> B/A ans =
MATLAB 의 기본적인 수학 함수, 삼각함수 수학 함수 abs(x) x 의 절대값을 계산 sqrt(x) x 의 근호값을 계산 round(x) x 를 가까운 정수로 반올림 sign(x) x 가 0 보다 작으면 -1, 0 이면 0. 0 보다 크면 1 rem(x,y) x/y 의 나머지를 계산 exp(x) e^x 를 계산 삼각함수 sin(x) sin(x) 계산 cos(x) cos(x) 계산 tan(x) tan(x) 계산 asin(x) 1/sin(x) 계산 acos(x) 1/cos(x) 계산 atan(x) 1/tan(x) 계산 atan2(x,y) 1/tan(y/x) 계산
PLOT 사용하기 plot(xdata, ydata, 'color_linestyle_marker') xdata 와 ydata 의 크기가 일치해야 한다. 하나의 창 안에 여러 그래프를 동시에 그리려면.. plot(x1, y1,’ 속성 1’, x2, y2,’ 속성 2’, x3, y3,’ 속성 3’,...) >> i = -pi:0.1:pi; >> x = cos(i); >> y = sin(i); >> plot(x,y); >> grid on;
PLOT 사용하기
Figure 창 열기 figure 새로운 그림 창을 생성 이미 존재하는 그림창을 활성화 한다. figure% 새로운 그림 창 생성 figure(10)% 10 번 그림 창 생성 혹은 활성화
Multi graphic 객체 사용하기 subplot(MNI) or subplot(M,N,I) M( 행의 갯수 ), N( 열의 갯수 ), I( 하부영역의 순서 ) >> subplot(221) >> subplot(222) >> subplot(212) subplot(221)subplot(222) subplot(212)
PLOT 사용하기 plot(xdata, ydata, 'color_linestyle_marker') xdata 와 ydata 의 크기가 일치해야 한다. 그래프의 속성은 무시해도 된다. 하나의 창 안에 여러 그래프를 동시에 그리려면.. plot(x1, y1,’ 속성 1’, x2, y2,’ 속성 2’, x3, y3,’ 속성 3’,...)
그래프의 속성 가능한 선의 Color Matlab Symbol Color Matlab Symbol Color c 하늘 g 초록 m 자주 b 파랑 y 노랑 w 흰색 r 빨강 k 검은색 가능한 선의 Style Matlab Symbol Style Matlab Symbol Style - Solid line :Dotted line -- Dashed line -. Dash-dot line noneNo Line 가능한 선의 marker Matlab Symbol Marker Style Matlab Symbol Marker Style ++^ △ oov ▽ **> ▷. ● < ◁ x×pentagram ☆ Square □ hexagram¤ Diamond ◇ none No marker (default)
실 습 1. -pi < x < pi 일 때 ( 단 x 의 스텝은 0.05), figure(1) 의 subplot(211) 에 X 축에 x, Y 축에 a=cos(x) 를 plot 하라. figure(1) 의 subplot(212) 에 X 축에 x, Y 축에 b=sin(x) 를 plot 하라. figure(2) 의 X 축에 a, Y 축에 b 를 plot 하라
실 습 1.
% 실습 1. x= -pi:0.05:pi; a=cos(x); b=sin(x); figure(1); subplot(211); plot(x,a); subplot(212); plot(x,b); figure(2) plot(a,b);
제목, 각 축의 이름, 격자 넣기 title(‘ 그래프의 제목 ’) 그래프의 제목을 나타낼 때 사용한다. xlabel(‘X 축 이름 ’) x 축의 이름을 넣을 때 사용한다. ylabel(‘Y 축 이름 ’) y 축의 이름을 넣을 때 사용한다. zlabel(‘Z 축 이름 ’) z 축의 이름을 넣을 때 사용한다. grid 그래프 객체에 격자를 더하거나 없앤다.
범례, 축의 한계값 사용하기 legend(‘ 문자열 1’,‘ 문자열 2’,..., 정수 ) 문자열 1: 첫번째 그래프에 대한 범례 문자열 2: 두번째 그래프에 대한 범례 axis([x1,x2,y1,y2]) x1 : x 축의 최소값, x2 : x 축의 최대값 y1 : y 축의 최소값, y2 : y 축의 최대값 xlim([x1,x2]) : x 축 제한 ylim([y1,y2]) : y 축 제한
실습 2. 실습 1 의 각 그래프에 축의 이름을 붙인다. 실습 1 의 각 그래프에 제목을 붙인다. 실습 1 의 각 그래프에 격자를 넣는다. 실습 1 의 cos(x), sin(x) 그래프를 하나의 그래 프 (figure(3)) 에 그리고, 범례를 넣는다.
% 실습 2. figure(1) subplot(211) xlabel('x'); ylabel('a'); title('a=cos(x)'); grid on; subplot(212) xlabel('x'); ylabel('b'); title('b=sin(x)'); grid on; figure(2) xlabel('x'); ylabel('y'); axis([-2,2,-2,2]); title('Graph of Circle'); grid on; figure(3) plot(x,a,x,b); legend('cos(x)','sin(x)'); xlabel('x'); ylabel('y'); grid on;
기본적인 그래픽 함수들 함 수설 명 plot x 와 y 축에 대해서 모두 선형 배율로 된 그래프 loglog x 와 y 축에 대해서 모두 log 배율로 된 그래프 semilogx x 축에 대해서는 log 배율, y 축에 대해서는 선형 배율로 된 그래프 semilogy x 축에 대해서는 선형 배율, y 축에 대해서는 log 배율로 된 그래프 plotyy 두 개의 y 축 선형 배율을 가진다.
그래픽 함수 비교 1
그래픽 함수 비교 2
SIMULINK
SIMULINK 란.. Simulink dynamic system 을 컴퓨터를 사용하여 모델링하 고 시뮬레이션하여 시스템을 해석하기 위한 패키 지 블록 다이어그램으로 된 GUI 환경을 제공하므로 사용자는 단지 마우스만을 사용하여 블록을 클릭 하고 드래그하여 모델을 만들기만 하면 된다. 선형, 비선형 시스템 모두를 해석 가능.
Simulink 시작하기
라이브러리 불러오기 클릭해서 끌어다 놓는다 더블클릭 변경
자주 사용되는 라이브러리
Simulink 실행하기 Simulation → Simulation Parameters... ▶ ( 실행 )
실 습 3실 습 3 자동제어 교재 연습문제 6-14 Ka=50, Kl=50, Kb=0.0706, Ki=10, Ko=50 Ra=10, J=0.006, n=0.01 A = 100, N=1.5