Download presentation
Presentation is loading. Please wait.
Published byBryan Stevens Modified 6년 전
1
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
1. MATLAB의 일반적인 사항 서경대학교 수리정보통계학부
2
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
Cont - 1 MATLAB은 Matrix Laboratory를 위한 단순 행렬 연산을 위해서 개발 현재의 MATLAB은 Math Works사에 의해서 개발됨 행렬 연산뿐만 아니라 행렬 연산을 기초로 하여 과학 계산을 위한 하나의 프로그래밍 언어와 데이터를 그래픽하게 처리하기 위한 후처리기와 GUI(Graphical User Interface) 및 기타 application 등으로 사용할 수도 있고 SIMULINK라는 도구를 내장하여 동적 시스템을 그래픽하게 simulation할 수도 있다. 서경대학교 수리정보통계학부
3
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
Cont - 2 모든 MATLAB의 기능은 행렬 연산을 기초로 하여 수행되기 때문에 MATLAB을 유용하게 사용하기 위해서는 먼저 행렬에 대해서 이해를 하고 있어야 함. 서경대학교 수리정보통계학부
4
Cont - 3 MATLAB은 초기에는 Fortran 그리고 C언어에서 C++로 6.0에서는 Java언어를 사용하여 개발되고 있으며 여려 종류의 OS에서 사용 할 수 있다. Language 수치계산, 프로그래밍 MATLAB Graphics Data Visualization, GUI Application Programming Interface 서경대학교 수리정보통계학부
5
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
1.1 MATLAB의 특징 행렬 데이터가 기본 연산 M-file을 사용한 프로그래밍 Toolbox(도구상자) 심볼로 이루어진 수식을 계산하는 기호계산 GUI 프로그래밍 SIMULINK 서경대학교 수리정보통계학부
6
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
1.2 MATLAB시작하기 MATLAB 아이콘을 클릭하면 MATLAB이 실행되어 MATLAB Command Window 가 뜬다. 서경대학교 수리정보통계학부
7
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
1.3 Desktop구성요소의 종류 및 기능 Command Window : MATLAB함수나 명령어, 사용자 M-file등을 실행 Command History : 사용자가 Command Window에 입력한 명령어를 기록하고, 실행하고, 복사하고, M-file롤 만들 수 있도록 한다. 서경대학교 수리정보통계학부
8
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
Cont - 2 Current Directory browser 현재 디렉토리 내의 MATLAB과 관련된 파일을 보여주고, 파일을 Editor/Debugger를 사용하여 열거나, 그 파일을 실행하고, 복사하고 삭제하거나 이름을 바꾸는 파일 관리자와 같은 역할을 한다. 서경대학교 수리정보통계학부
9
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
Cont - 3 Workspace browser : MATLAB Workspace에 저장된 변수들을 보여주고, Array Editor를 사용하여 변수를 열거나, 변수를 삭제하거나, 변수의 데이터 값을 직접 그래프를 그리도록 한다. Launch Pad : MATLAB 도구들을 실행 시킨다. Help browser : MATLAB에 관한 도움말을 보여주고 검색하도록 해준다. 서경대학교 수리정보통계학부
10
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
1.3-1 File Menu ① New : M-file, Figure, Model을 새로 만든다 Open : MATLAB M-file과 SIMULINK MUL-file을 text 편집기로 읽어오는 부분 Close Command Window : Command Window를 닫는다. Save Workspace as : Workspace에 저장되어 있는 특정 변수들이나 모든 변수는 MAT-file형식으로 하드 디스크에 저장될 수 있다. Set Path : Path를 사용하여 파일들을 관리한다. 서경대학교 수리정보통계학부
11
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
1.3-1 File Menu ② Preferences : Prompt나 파일에 출력되는 수의 정밀도나 형식, 텍스트 편집기, Window의 색등을 설정하는 부분 General : Numerical Format,Editor Preference, Echo on 등이 있다. Numerical Format Short : default 값으로써 소수점 아래 4자리 까지 표시 Long : 소수점 아래 14자리까지 표시 서경대학교 수리정보통계학부
12
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
1.3-1 File Menu ③ Hex : 16진수(Hexadecimal)표시법으로 표시 Bank : 소수점아래 2자리 까지만 표시 Plus : 숫자의 부호를 표시 Short E : 부동 소수점 표시 방법에 의하여 소수점 4자리까지 표시 Long E : 부동 소수점 표시 방법에 의하여 소수점 14자리까지 표시 Short G : 이하는 부동 소수점으로 그 외는 고정 소수점으로 표시하되 소수점 이하 4자리까지 표시 서경대학교 수리정보통계학부
13
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
1.3-1 File Menu ④ Long G : 이하는 부동 소수점으로 그 외는 고정 소수점으로 표시하되 소수점 이하 14자리까지 표시 Rational : 소수점 대신 “/”를 사용하여 표시 Loose : 행렬을 출력할 때 행렬의 전후에 Blank를 삽입 Compact : 행렬을 출력할 때 행렬의 전후에 Blank를 삽입하지 않음 서경대학교 수리정보통계학부
14
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
1.3-2 Edit Menu ① Undo : 붙여넣기(Paste)를 취소하는 메뉴 Cut : Command Prompt에서 키보드나 마우스에 의해서 선택된 내용을 잘라내어서 클립보드에 저장 Copy : Command Windows에서 키보드나 마우스에 의해서 선택된 내용을 복사하여 클립보드에 저장 Paste : 현재의 클립보드에 저장되어 있는 내용을 선택된 창으로 복사 서경대학교 수리정보통계학부
15
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
1.3-2 Edit Menu ② Clear : Command Prompt에서 키보드나 마우스에 의해서 선택된 내용을 삭제 Select All : Command Windows에 있는 모든 내용을 선택 Find : Command Wondow, Command Directory에 있는 내용을 찾을 때 사용. 서경대학교 수리정보통계학부
16
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
1.3-3 Help Menu MATLAB에서 도움말을 보기 위하여 사용 서경대학교 수리정보통계학부
17
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
1.4 명령어 demo : demo는 MATLAB또는 각 Toolbox의 데모를 보는 명령어 who, whos : 현재의 workspace에 저장된 변수들의 리스트를 보기 위해 사용. who는 변수들의 리스트만 출력하고 whos는 변수들의 리스트와 크기와 데이터형 등을 출력 help : MATLAB명령어나 M-file 대한 도움말을 출력 서경대학교 수리정보통계학부
18
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
Cont - 2 lookfor : 키워드를 사용하여 MATLAB 함수나 명령어를 찾는 명령어 dir, cd, delete : dir : 디렉토리의 파일 목록을 출력 cd : 현재의 디렉토리를 변경하는데 사용 delete : 파일과 그림창을 지운다 type : 특정파일의 내용을 보기 위해서 사용 서경대학교 수리정보통계학부
19
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
Cont - 3 what : 현재의 디렉토리에 있는 파일 중에서 M-file, MAT-file, MEX-file, P-file등의 리스트를 출력 clear : Workspace나 메모리에서 특정 항목을 지우는데 사용. Workspace내의 모든 변수를 지우고 싶으면 all을 인자로 사용. clc : MATLAB Command Prompt를 지운다 서경대학교 수리정보통계학부
20
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
Cont – 4 echo : M-file이 실행될 때 M-file 내의 명령어들이 Command Prompt로 출력되게 하거나 되지 않도록 한다. open : 이름에 따라 파일 또는 변수를 여는 명령어 quit : 현재 MATLAB Workspace에 저장된 변수들을 저장하지 않고 MATLAB을 종료 서경대학교 수리정보통계학부
21
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2. MATLAB에서의 기본적인 연산 서경대학교 수리정보통계학부
22
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
Cont – 1` 수치 데이터에는 스칼라, 벡터, 행렬 3가지 수치 연산은 3가지 데이터간의 연산 MATLAB에서는 행렬이 기본적인 연산이 되기 때문에 벡터 연산을 위한 배열연산(array operation)이 존재 서경대학교 수리정보통계학부
23
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2.1 스칼라, 벡터 행렬의 입력 서경대학교 수리정보통계학부
24
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2.1-1 스칼라의 입력 Command Prompt 에서 직접 입력하는 방법 MATLAB Command Prompt에서 키보드를 이용해서 변수에 스칼라를 입력 M-file을 이용하는 방법 스크립트 모드로 작성된 M-file에 어떤 변수에 값을 배정하는 문장이 있으면 그 변수는 MATLAB Workspace에 그대로 저장된다. 파일로부터 읽어오는 방법 텍스트나 2진 파일로부터 스칼라 데이터를 읽어오는 방법 서경대학교 수리정보통계학부
25
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2.1-2 MATLAB에서 정의되는 특별한 상수① pi : 원주율 π( )를 나타낸다 i, j : , 허수를 의미 inf : 무한대(∞)를 의미. 보통 분수에서 분모가 0인 경우에 해당 NaN : 수가 아니라는 의미(Not a Number) eps : 부동 소수점의 상대적인 정확도 ans : 가장 최근의 값을 나타내는 변수 서경대학교 수리정보통계학부
26
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2.1-2 MATLAB에서 정의되는 특별한 상수② flops : 부동 소수점 연산을 시행한 횟수 realmax : 가장 큰 양의 부동 소수점 realmin : 가장 작은 양의 부동 소수점 computer : MATLAB을 수행하고 있는 computer의 종류 및 그 computer에 설치된 MATLAB에서 사용할 수 있는 행렬의 최대 원소의 개수를 정수로 출력 서경대학교 수리정보통계학부
27
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2.1-2 MATLAB에서 정의되는 특별한 상수③ cputime : MATLAB을 시작한 후부터 MATLAB에서 사용한 cpu time을 초로 계산하여 출력 clock : 현재 시간을 행벡터로 출력 date : 문자열로 이루어진 현재 날짜를 출력 서경대학교 수리정보통계학부
28
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2.1-3 행렬의 입력 ① Command Prompt 에서 직접 입력하는 방법 MATLAB에서 행렬이나 벡터와 같이 여러 개의 스칼라 요소를 가지는 데이터 형은 []를 사용하여 나타낸다. MATLAB에서 행을 구분하는 데는 세미콜론(;)을 사용하거나 new line을 사용하고 열을 구분할 때는 콤마(,)나 공백을 사용 서경대학교 수리정보통계학부
29
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2.1-3 행렬의 입력 ② 이미 값을 가지고 있는 행렬 데이터에서 그 행렬내의 임의의 요소의 값을 다시 할당하거나 읽기 위해서는 첨자(subscript)를 사용 A(i,j)=b는 행렬 A의 i번째 행과 j번째 열의 요소에 b를 할당 b=A(i,j)는 행렬 A의 i번째 행과 j번째 열의 요소 값을 b에 할당 서경대학교 수리정보통계학부
30
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2.1-3 행렬의 입력 ③ 행렬의 첨자는 정수 부분행렬(submatrix)를 지정하는 방법 : 행렬의 이름 다음의 괄호 안에 “시작행:끝행, 시작열:끝열” 과 같이 지정 행벡터 : 행렬의 이름 다음의 괄호 안에 “행, 시작열:끝열”과 같이 지정 서경대학교 수리정보통계학부
31
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2.1-3 행렬의 입력 ④ 열벡터 : 행렬의 이름 다음의 괄호 안에 “시작행:끝행, 열”과 같이 지정 행렬의 한 행이나 열의 데이터를 모두 하나의 벡터로 저장하는 방법 : B=A( k, : )는 행렬 A의 k번째 행을 B에 저장하라는 의미 B=A( :, k )는 행렬 A의 k번째 열을 B에 저장하라는 의미 서경대학교 수리정보통계학부
32
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2.1-3 행렬의 입력 ⑤ M-file을 이용하는 방법 스크립트 모드로 작성된 M-file에 어떤 변수에 값을 배정하는 문장이 있으면 그 변수는 MATLAB Workspace에 저장된다. 파일로부터 읽어오는 방법 텍스트 파일 형식으로 수치 값으로만 저장된 행렬 형태의 데이터를 load를 사용하여 읽으면 파일명을 변수 명으로 하여 데이터를 Workspace에 저장 서경대학교 수리정보통계학부
33
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2.1-3 행렬의 입력 ⑥ 이미 존재하는 행렬을 이용한 행렬의 생성 MATLAB에서는 Workspace에 이미 저장되어 있는 행렬을 이용하여 다른 행렬을 정의할 수 있도록 한다. 서경대학교 수리정보통계학부
34
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2.1-4 MATLAB에서 정의되는 특별한 행렬① 빈행렬(empty matrix) : 0×0의 행렬로써 행렬 자체는 존재하지만 요소가 하나도 없는 행렬 영행렬(zero matrix) : 모든 행렬의 요소가 0이 되는 행렬 모든 요소가 0인 정방행렬의 경우 : zeros(n) 모든 요소가 0인 m×n행렬의 경우 : zeros(m, n) 임의의 행렬 A와 크기가 같고 모든 요소가 0인 행렬의 경우 : zeros(size(A)) 서경대학교 수리정보통계학부
35
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2.1-4 MATLAB에서 정의되는 특별한 행렬② 모든 요소가 1로 이루어진 행렬(matrix of ones) 모든 요소가 1인 정방행렬의 경우 : ones(n) 모든 요소가 1인 m×n행렬의 경우 : ones(m, n) 임의의 행렬 A와 크기가 같고 모든 요소가 1인 행렬의 경우 : ones(size(A)) 서경대학교 수리정보통계학부
36
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2.1-4 MATLAB에서 정의되는 특별한 행렬③ 단위행렬(identity matrix) 정방행렬의 경우 : eye(n) m×n행렬의 경우 : eye(m, n) 임의의 행렬 A와 크기가 같은 단위 행렬의 경우 : eye(size(A)) 0과 1사이의 값으로 균등분포 된 난수들로 이루어진 행렬 : rand(n) 또는 rand(n, m) 서경대학교 수리정보통계학부
37
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2.1-4 MATLAB에서 정의되는 특별한 행렬④ 0과 1사이의 값으로 정규분포 된 난수들로 이루어진 행렬 : randn(n) 또는 randn(n, m) 파스칼의 삼각행렬(Pascal’s triangle matrix) : 파스칼의 삼각형은 의 이항식을 전개 했을 때 나타나는 전개계수를 의미하고 pascal(n)으로 쓴다. 서경대학교 수리정보통계학부
38
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2.1-4 MATLAB에서 정의되는 특별한 행렬⑤ 마방진(magic square) : 마방진은 가로, 세로, 대각선으로 수의 합이 모두 같은 숫자 배열표. magic(n)으로 나타낸다. 동반행렬(companion matrix) : compan(p)는 다항식 p와 관련된 동반행렬을 생성 Hadamard행렬 : 모든 요소가 1 또는 –1로 이루어져 있어서 다음 관계식을 만족하는 n차 정방행렬 H = hadamard(n) 서경대학교 수리정보통계학부
39
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2.1-5 벡터의 입력 벡터는 데이터의 저장 형태에 따라서 행벡터(row vector)와 열벡터(column vector)가 있다. []을 사용한 벡터의 입력 : 행렬과 같은 방법 콜론(:)을 사용한 벡터의 입력 : 콜론을 사용하여 벡터를 만들 때는 “시작값 : 증분값 : 최종값”의 형식을 따른다. 서경대학교 수리정보통계학부
40
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2.2 스칼라, 행렬, 벡터의 연산 및 조작 MATLAB에서 10의 거듭제곱은 e 또는 E를 사용하여 나타낸다. 복소수 데이터의 경우에 허수부는 i나 j를 사용하여 나타낸다. 서경대학교 수리정보통계학부
41
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2.2-1 스칼라의 연산 및 조작 연산작용 수 식 MATLAB에서의 수식 더 하 기 a + b 빼 기 a – b 곱 하 기 a × b a * b 우측 나누기 a / b 좌측 나누기 b / a a \ b (a \ b) 지 수 a ^ b 연산의 우선수위 1순위 괄호 2순위 지수 3순위 곱하기, 나누기 4순위 더하기, 빼기 서경대학교 수리정보통계학부
42
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2.2-2 행렬의 연산 및 조작 ① 행렬의 더하기와 빼기 : 크기가 같은 두 행렬의 같은 위치에 있는 원소끼리 더하거나 뺀다. 행렬의 곱하기 : 첫번째 행렬의 열의 개수와 두 번째 행렬의 행의 개수가 일치할 때 정의된다. 행렬의 나누기 : 에서 로 는 inv(A)*B로 서경대학교 수리정보통계학부
43
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2.2-2 행렬의 연산 및 조작 ② 행렬의 거듭제곱 : 양의 정수 k에 대한 행렬의 거듭제곱은 한 행렬 A를 k번 곱한 것과 같다. k가 양의 정수가 아닌 경우는 λ를 행렬 A의 고유값, V를 A의 고유벡터라 하면 AV = λV 여기에서 양변에 A를 곱하면 서경대학교 수리정보통계학부
44
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2.2-2 행렬의 연산 및 조작 ③ 다시 양변에 A를 곱하면 따라서 = V*λ.^k*inv(v) = V*λ.^k/V 서경대학교 수리정보통계학부
45
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2.2-2 행렬의 연산 및 조작 ④ 행렬의 조작 : 행렬의 형태를 바꾸는 함수들 rot90 : 행렬을 90˚씩 회전 시킨다. rot90(A, k) : k가 + 이면 반시계 방향으로, - 이면 시계 방향으로 90˚ × k 만큼 회전 flipup : 주어진 행렬을 상하 방향으로 교환한다. 서경대학교 수리정보통계학부
46
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2.2-2 행렬의 연산 및 조작 ⑤ fliplr : 주어진 행렬을 좌우 방향으로 교환한다. reshape : 한 행렬에서 원소들을 취하여 다른 행렬을 만든다. reshape(A,m,n)은 k개의 원소를 가지는 행렬 A에서 k개의 요소를 취하여 m×n 행렬을 만든다. 서경대학교 수리정보통계학부
47
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2.2-3 벡터의 연산 및 조작 ① 배열 연산은 행렬 전체로서가 아니라 행렬 내의 각 요소가 연산의 중심이 되어서 행렬이나 벡터의 요소 대 요소의 산술 연산이 수행된다. 연산작용 수 식 MATLAB에서의 수식 더 하 기 a + b 빼 기 a – b 곱 하 기 a × b a. * b 우측 나누기 a / b a. / b 좌측 나누기 b / a a. \ b (a. \ b) 지 수 a. ^ b 서경대학교 수리정보통계학부
48
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2.2-3 벡터의 연산 및 조작 ② 벡터의 내적 dot(A, B) - 두 벡터 A와 B의 내적 벡터의 외적 cross(A, B) - 두 벡터 A와 B의 외적 서경대학교 수리정보통계학부
49
서경대학교 수리정보통계학부 안가경교수<kkahn@skuniv.ac.kr>
2.2-4 다차원 배열의 연산 및 조작 벡터나 행렬은 1차원 배열(벡터의 경우)이나 2차원 벡터(행렬의 경우)이다. 데이터의 index가 2차원 이상 필요한 경우 사용하는 배열 2차원 배열에서 1번째 index를 행, 2번째 index를 열이라고 하고 3차원 배열의 경우에 세 번째 index를 페이지(page)라 한다. 2차원 배열인 행렬의 경우에 첨자를 사용해서 모든 행과 열은 A(:, :)로 나타내므로 A(:, :)에 페이지에 해당하는 index를 추가한다. 서경대학교 수리정보통계학부
Similar presentations