MATLAB for C/C++ Programmers

Similar documents
예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

Vector Differential: 벡터 미분 Yonghee Lee October 17, 벡터미분의 표기 스칼라미분 벡터미분(Vector diffrential) 또는 행렬미분(Matrix differential)은 벡터와 행렬의 미분식에 대 한 표

PowerPoint Presentation

MATLAB for C/C++ Programmers

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - 기계공학실험1-1MATLAB_개요2D.pptx

MATLAB


설계란 무엇인가?

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

<4D F736F F F696E74202D204D41544C4142B0ADC0C7B7CF28B9E8C6F7BFEB295F3031C0E55FBDC3C0DBC7CFB1E22E BC8A3C8AF20B8F0B5E55D>


Microsoft PowerPoint - MDA 2008Fall Ch2 Matrix.pptx

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 (제 2 장. 복소수 기초)

statistics

Microsoft PowerPoint - LA_ch6_1 [호환 모드]

슬라이드 1

Microsoft Word - matlab.doc

11장 포인터

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

설계란 무엇인가?

1 경영학을 위한 수학 Final Exam 2015/12/12(토) 13:00-15:00 풀이과정을 모두 명시하시오. 정리를 사용할 경우 명시하시오. 1. (각 6점) 다음 적분을 구하시오 Z 1 4 Z 1 (x + 1) dx (a) 1 (x 1)4 dx 1 Solut

와플-4년-2호-본문-15.ps

슬라이드 1

PowerPoint 프레젠테이션

C 언어 프로그래밊 과제 풀이

초4-1쌩큐기본(정답)본지

(001~006)개념RPM3-2(부속)

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

Microsoft Word - matlab_manual.doc

MATLAB for C/C++ Programmers

윈도우시스템프로그래밍

Microsoft PowerPoint - ICCAD_Analog_lec01.ppt [호환 모드]

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

MATLAB for C/C++ Programmers

완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

Chapter 연습문제답안. y *sin-*cos*^ep-*/sqrt. y [ ; sinpi/ ; sin*pi ; ] 혹은 [ sinpi/ sin*pi ]. a ais[- ] b et.,., sin. c.. a A는주어진행렬 M의 번째열만을표시하는새로운행렬을나타낸다.

PowerPoint Presentation

MATLAB for C/C++ Programmers

윈도우시스템프로그래밍

Microsoft PowerPoint - 제11장 포인터(강의)

KNK_C_05_Pointers_Arrays_structures_summary_v02

<4D F736F F D20BACEB7CF2D4D61744C616220B1E2C3CA20B9D720C7C1B7CEB1D7B7A1B9D62E646F63>

R R ...

Multi-pass Sieve를 이용한 한국어 상호참조해결 반-자동 태깅 도구

Vector Space Vector space : 모든 n 차원컬럼벡터의집합 : {, :, } (, 2), (2, 5), (-2.4, 3), (2.7, -3.77), (,), 이차원공간을모두채움 : {,, :,, } (2,3,4), (3,2,-5), Vector spa

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi

Microsoft PowerPoint - chap-11.pptx

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

PowerPoint Presentation

PowerPoint 프레젠테이션

중간고사

PowerPoint 프레젠테이션

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

Java ...

제 11 장포인터 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

게임 기획서 표준양식 연구보고서

MATLAB for C/C++ Programmers

Visual Basic 반복문

OCW_C언어 기초

01

<B4EBC7D0BCF6C7D02DBBEFB0A2C7D4BCF62E687770>

윈도우즈프로그래밍(1)

Microsoft PowerPoint - chap-06.pptx

PowerPoint Template

MATLAB for C/C++ Programmers

Microsoft PowerPoint - 08-C-App-19-Quick-Preprocessor

금오공대 컴퓨터공학전공 강의자료

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

제 12강 함수수열의 평등수렴

슬라이드 1

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

4S 1차년도 평가 발표자료

Microsoft Word - PLC제어응용-2차시.doc

Microsoft PowerPoint - 제11장 포인터

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

장연립방정식을풀기위한반복법 12.1 선형시스템 : Gauss-Seidel 12.2 비선형시스템 12.1 선형시스템 : Gauss-Seidel (1/10) 반복법은초기근을가정한후에더좋은근의값을추정하는체계적인절차를이용한다. G-S 방법은선형대수방정

슬라이드 1

1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문

Microsoft Word MetOne237Bmanual

PowerPoint Presentation

Microsoft PowerPoint - 05-chap03-ArrayAndPointer.ppt

가장중요한덕목이다 ( 프로그래밍에서또다른전공에서또인생에서... 인생에도도움말기능이 있으나이를사용하지않는다. 사용할줄도모르고...) 수학함수는프로그램언어마다다르므로사용하기전에꼭확인해보고써야한다. 다음은매틀랩내장함수를구분하여간단한설명을붙인다. 1. 기본수학함수 abs(x)

3D MAX + WEEK 9 Hansung Univ. Interior Design

컴파일러

Tcl의 문법

02-출판과-완성

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap03-변수와데이터형.pptx

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

수리영역 5. 서로다른두개의주사위를동시에던져서나온두눈의수의곱 이짝수일때, 나온두눈의수의합이 또는 일확률은? 5) 의전개식에서상수항이존재하도록하는모든자 연수 의값의합은? 7) 다음순서도에서인쇄되는 의값은? 6) 8. 어떤특산

슬라이드 1

Microsoft PowerPoint - [2009] 02.pptx

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - hw8.ppt [호환 모드]

Transcription:

MATLAB 시작하기 김탁은 kmste2@kaist.ac.kr 1

시작하기에앞서 강의시간 1월 20일 ~ 1월 29 ( 월 ~ 금 ) 14:00 ~ 18:00 ( 총 30시간 ) 50분강의, 10분휴식 강의교재 쉽게배우는 MATLAB 입문과활용 (2 판 ) 임종수의 MATLAB 7 연락처 강사김탁은 ( kmste2@kaist.ac.kr ) 조교김도형 ( ehgud5@kaist.ac.kr ) IT 아카데미사무국 ( ita@kaist.ac.kr, 042-350-8941~3) 2

MATLAB 강좌에서다루는내용들 MATLAB 기본연산 벡터, 행렬연산 ( 덧셈, 뺄셈, 곱셈 ), 각종수학함수 프로그래밍작성기법 연산자, 데이터타입, 프로그램흐름제어, M- 파일스크립트및 M- 파일함수작성 그래프드로잉 각종 2D, 3D 그래프 ( 막대그래프, 로그그래프, 3 차원그래프, ) 각종수학문제해결기법 심볼릭툴박스, 선형대수, 방정식, 미분과적분 데이터분석 회귀분석 파일입출력 데이터파일읽기및저장 GUI Interface 간단한 GUI Application 만들어보기 3

오늘강의내용 MATLAB 소개및역사 MATLAB 인터페이스둘러보기 MATLAB 기본명령어 벡터 / 행렬기본연산 기본적인수학함수사용법 4

MATLAB? MATrix LABoratory 다양한수치해석문제에대한 total solution 제공 Script 언어로, 사용자의입력에대한결과즉시확인가능 강력한시각화도구제공 다양한툴박스지원 Control System Toolbox Signal Processing Toolbox Image Processing Toolbox Wavelet Toolbox 5

MATLAB? GUI Interface Simulink Model-based design tool 개발용및상용보드지원 각종 device driver VxWare 등 Embedded Solution 제공 MATLAB Code C, VHDL, 6

MATLAB 역사 Early 1970s Linear algebra 문제해결을위한 LINPACK 라이브러리, eigenvalue/eigenvector 를계산하기위한 EISPACK 라이브러리개발 Late 1970s Cleve Moler 교수가 New Mexico 대학재직시학생들이 LINPACK, EISPACK 라이브러리를 Fortran 을배우지않고사용할수있도록 소프트웨어개발 Cleve Moler 1984 Cleve Moler가 Stanford 대학에서강의. 학생이었던 Jack Little가강의에감명받음. 상업적성공예감. MATLAB을 C로포팅. 라이브러리작성. Mathworks 창업 Jack Little 7

MATLAB 역사 관련자료 Cleve Moler http://www.mathworks.co.kr/company/aboutus/founders/clevemoler.html Jack Little http://www.mathworks.co.kr/company/aboutus/founders/jacklittle.html Origins of MATLAB 비디오 http://www.mathworks.co.kr/videos/origins-of-matlab- 70332.html?type=shadow 8

오늘날의 MATLAB 테크니컬컴퓨팅 데이터수집 수집보드, 계측장비등하드웨어와통신하여데이터수집 데이터분석 강력한수리엔진으로통계적분석, 이미지분석, 신호분석등을쉽고빠르게처리 수학적모델링 curve fitting, 통계학, 최적화등수학적도구제공 알고리즘개발 C++/Fortran 대비빠른설계, 다양한알고리즘및과학 / 수학함수제공 병렬컴퓨팅 대규모데이터를멀티코어, 클러스터, 그리드및클라우드등을통해처리 데스크탑및웹배포 개발한알고리즘또는프로그램을데스트탑또는웹으로배포기능 시뮬레이션및모델기반설계 시스템설계와시뮬레이션 사전정의된라이브러리블록으로시스템모델링 이산이벤트시뮬레이션 큐잉시스템이나에이전트기반시스템시뮬레이션 임베디드코드생성 MATLAB 코드로부터 C/C++ 코드생성, 특정프로세서아키텍처를위한코드최적화 HDL 코드생성및검증 VHDL, Verilog 코드생성, 소프트웨어와하드웨어 Cosimulation 확인, 검증및테스트 임베디드소프트웨어, 디지털 / 아날로그하드웨어의가상테스트를통한프로젝트문제제거및개발시간단축 9

오늘날의 MATLAB 다양한프로그램 임베디드시스템 제어시스템 디지털신호처리 통신시스템 이미지및비디오처리 FPGA 설계 메카트로닉스 테스트및측정 계산생명공학 계산금융 다양한산업 항공우주및국방 자동차 생명과학및제약 통신 전자및반도체 에너지 금융서비스 산업자동화및기계 단순히수학계산을위한프로그램이아니라, 산업전반에서활용되는강력한도구!! 10

MATLAB 시작하기! 11

MATLAB 소프트웨어구하기 KAIST 학생 / 직원 학교에서 MATLAB License 를구매하였음 학교이메일주소 (*@kaist.ac.kr) 이나연구실메일주소 (*@*.kaist.ac.kr 로끝나는 메일 ) 만있으면 Mathworks 홈페이지에등록후설치가능 http://circnts.kaist.ac.kr/ 에서다운로드후설치 License 가없는분 아진출판사 (http://ajin.to) 에서 학생용 MATLAB 구매후사용 학생임을증명하기위한학생증 사본등이필요 MATLAB 은불법복제단속이 심하므로정식으로구매하여 사용하시길바랍니다 12

MATLAB 소프트웨어구하기 circnts.kaist.ac.kr 로그인 Etc Products MATLAB 13

MATLAB 설치하기및인증하기 14

MATLAB 인증하기 KAIST 재학생인경우 두번째 I need to create an Account 선택 15

MATLAB 인증하기 빈칸입력후이메일인증 Activation Key: 16382-21637-19669-05795-17079 16

MATLAB 첫화면 (R2012b) 17

MATLAB 인터페이스 Editor Workspace Current Folder Command Window Command History 18

MATLAB 인터페이스 Current Folder 현재작업디렉토리의파일리스트를보여줌 파일을더블클릭하면해당파일확장자에따른액션이실행됨 Editor Workspace Editor M- 파일스크립트파일을작성하기위한에디터 Current Folder Command Window Command History Command Window MATLAB 명령어를직접입력하여실행 Workspace 현재 MATLAB 에서사용되고있는데이터에대한정보를기록 더블클릭하여해당데이터를 Excel 과같은 spread sheet 구조로볼수있으며, 수정도가능 Command History MATLAB 을사용하는동안실행한모든명령어들의목록을보여줌 19

MATLAB 인터페이스 본인의 MATLAB 인터페이스가다르게나타날때 Layout 의 Default 를누름 Editor 화면은나타나지않음 20

Command Window 폰트설정 21

Keyboard Mapping 변경 22

MATLAB 인터페이스익숙해지기 [ 실습 ] 2 x 3 행렬을만들고, Workspace 에서값을바꿔봅시다. 1. Command Window 에서아래명령어를입력합니다. >> A = [1 2 3; 4 5 6] 2. Workspace 에 A 를더블클릭하여아래와같은 spread sheet 가나타나는지확인합니다. 3. 값을변경한다음, 우측상단의 X 표시를눌러 spread sheet 를끕니다. 그리고아래명령어를입력하여값이변경되었는지확인합니다. >> A 23

MATLAB 인터페이스익숙해지기 [ 실습 ] 방금전에입력한명령어를화살표키를이용하여불러봅시다. 1. 마우스로 Command Window 를선택하면창이활성화되어타이틀바의색이진하게되고, 프롬프트 (>>) 에커서가깜박거립니다. 2. 키보드의위 / 아래화살표키를눌러보세요. 이전에입력했던명령어가프롬프트에나타나는지확인합니다. 3. 화살표키를조작하는대신 Command History 창에나타난명령어를더블클릭하여실행해봅시다. 24

MATLAB 조작기본명령어 MATLAB 종료하기 >> quit Command Window 깨끗하게만들기 >> clc MATLAB 에서사용하는모든변수와함수지우기 >> clear 또는 >> clear all MATLAB 도움말이용하기 또는, workspace 에서변수를선택한다음마우스 오른쪽버튼클릭하여 delete 를선택하거나, 키보드의 delete 키를누르면해당변수삭제 >> help cos 25

변수할당및수식연산 변수할당 다른프로그래밍언어 (C/JAVA 등 ) 에서변수할당방법과동일하게 = 연산자사용하여변수할당 = 는 동치 가아니라, 오른쪽의값을왼쪽의변수에 할당 하라는뜻! >> 변수명 (variable) = 수식 (expression) 변수할당예제 >> A = 5 * 3 A = 15 >> a = A * 10 a = 150 주의할점! 변수명은무조건영문자로시작해야한다. 숫자, 특수문자, 언더바등으로시작할수없다. MATLAB에서는대소문자를다르게처리한다. 따라서변수명 a와변수명 A는서로다른변수이다. 26

변수할당및수식연산 변수명없이수식만쓰는경우는? >> 5 * 3 + 6 MATLAB 이자동으로계산결과를 ans 변수에할당함 >> 5 * 3 + 6 26 ans 변수는일반변수처럼사용가능 >> ans * 3 63 27

수식표현에익숙해지기 다음수식을 MATLAB 수식표현으로기술하기 8 + 6 1 + 5 2 4 3 ππ 103 ee 3 + ππ 10 3 >> 8 + (6 * (1 + sqrt(5))) / 2 >> 4 / 3 * pi * 10^3 >> exp(sqrt(3)) + pi * 10^3 ee ππ 1 >> exp(pi * sqrt(-1)) or >> exp(pi * i) ππ = 3.141592 는 pi 로기술 자연상수 e 는 exp(1) 로기술. ee xx 는 exp(x) 로기술 i 와 j 는복소수 (complex number) 의허수를의미 28

Quiz x = 5 일때, 다음수식들을계산해봅시다. 3 sin xx cccccc2 xx ssssss 3 (xx) xx 2 2 ee iiii + ee iiii ee iiii ee iiii 2 2ii 29

Quiz Sol. x = 5 일때, 다음수식들을계산해봅시다. 3 sin xx cccccc2 xx ssssss 3 (xx) xx 2 2 >> x = 5; >> - (3*sin(x)*cos(x)^2-sin(x)^3)/(x^2-2) -0.0283 ee iiii + ee iiii ee iiii ee iiii 2 2ii >> x = 5; >> (exp(i*x)+exp(-i*x))/2 * (exp(i*x)-exp(-i*x))/(2*i) -0.2720 30

벡터 (vector) 벡터란? 정의 : 크기와방향을갖는물리적인양 표현 : 순서를가지는어떠한수들의나열 MATLAB 에서벡터기술하기 괄호 [ ] 사이에숫자를나열 숫자간구분은공백 (space) 또는컴마 (,) >> u = [-3 2 4 8 11] u = -3 2 4 8 11 or >> u = [-3, 2, 4, 8, 11] u = -3 2 4 8 11 행 (row) 벡터 & 열 (column) 벡터 열벡터는숫자사이에세미콜론 (;) 을사용하여생성 >> u = [1; 2; 3] u = 1 2 3 31

벡터 (vector) 행벡터 열벡터변환하기 괄호끝에프라임기호 ( ) 붙이기 >> u = [-3 2 4] u = -3 2 4 >> u u = -3 2 4 >> u = [-3; 2; 4] u = -3 2 4 >> u u = -3 2 4 벡터원소참조하기 >> u(1) -3 >> u(2) 2 >> u(3) 4 벡터의시작인덱스는 1 벡터범위를벗어난원소접근시 >> u(4) Index exceeds matrix dimensions. 32

순차적인행벡터생성 [1, 2, 3,, 100] 인행벡터를생성하는방법 방법 I: 숫자들을일일이기술 >> u = [1 2 3 4 5 100] 손도아프고.. 시간도없고.. 만약중간에입력하다가틀리면?? 방법 II: 콜론연산자 (colon operator) 사용 >> u = 1:100 쉽고빠르게원하는행벡터생성!! 방법 III. linspace 함수사용 >> u = linspace(1,100,100) 33

순차적인행벡터생성 콜론연산자사용법 >> u = 시작값 : 증가 / 감소분 : 종료값 의미 : 시작값 부터 종료값 까지 증가 / 감소분 씩증가 / 감소하는수들의벡터 증가값생략시증가값은 1 로설정 다양한순차적행벡터생성예 예 1) -5 부터 2 까지정수로구성된순차적행벡터를생성하라 >> u = -5:2 or >> u = -5:1:2 예 2) 2 부터 -5 까지정수로구성된순차적행벡터를생성하라 >> u = 2:-1:-5 예 3) 0 부터 1 까지 0.01 씩증가하는순차적행벡터를생성하라 >> u = 0:0.01:1 34

순차적인행벡터생성 linspace (linearly spaced vector) 간격이일정한수들의벡터를생성 >> u = linspace( 시작값, 종료값, 생성할값개수 ) 생성할값개수생략시 100 으로설정 순차적행벡터생성예 예 1) -1 부터 1 까지간격이동일한 9 개의값을생성하라 >> u = linspace(-1, 1, 9) -1.0000-0.7500-0.5000-0.2500 0 0.2500 0.5000 0.7500 1.0000 예 2) 1 부터 -1 까지역순으로간격이동일한 5 개의값을생성하라 >> u = linspace(1, -1, 5) 1.0000 0.5000 0-0.5000-1.0000 35

단일벡터연산 각종수학함수 벡터의각원소에대해적용 >> a = [1 2 3]; >> exp(a) 2.7183 7.3891 20.0855 >> log(a) 0 0.6931 1.0986 >> sqrt(a) 1.0000 1.4142 1.7321 벡터의각원소의 n- 제곱근 >> a = [1 2 3] >> a.^ 2 1 4 9 >> a = [-0.4 1.2 0.6-1.3] a = -0.4000 1.2000 0.6000-1.3000 >> abs(a) 절대값 0.4000 1.2000 0.6000 1.3000 >> floor(a) -1 1 0-2 >> ceil(a) 0 2 1-1 주의할점! 내림 올림 n- 제곱근을의미하는 ^ 기호는스칼라에대해정의 따라서벡터에대해 a^3 와같이사용하면에러 36

벡터와스칼라연산 벡터 AA = (aa 1, aa 2, aa nn ) 와, 스칼라변수 c 가있을때, AA + cc = cc + AA = (cc + aa 1, cc + aa 2, cc + aa nn ) AA cc = (aa 1 cc, aa 2 cc, aa nn cc) cc AA = (cc aa 1, cc aa 2, cc aa nn ) AA cc = cc AA = (cc aa 1, cc aa 2, cc aa nn ) AA/cc = (aa 1 /cc, aa 2 /cc, aa nn /cc) cc./aa = (cc/aa 1, cc/aa 2, cc/aa nn ) >> a = [1 2 3 4]; >> c = 5; >> a + c 6 7 8 9 >> a c -4-3 -2-1 >> c a 4 3 2 1 >> a*c 5 10 15 20 >> c*a 5 10 15 20 >> a/c 0.2000 0.4000 0.6000 0.8000 >> c./a 5.0000 2.5000 1.6667 1.2500 37

벡터간연산 다음두벡터가있을때, >> x = [-1 0 1] >> y = [3 4 5] 두벡터의합과차 >> x + y 2 4 6 >> x-y -4-4 -4 두벡터의내적 >> dot(x, y) 2 두벡터의외적 >> cross(x, y) -4 8 4 xx yy = 11 00 11 >> x * y -3 4-5 0 0 0 3 4 5 33 44 55 두벡터의각원소간곱셈 >> x.* y -3 0 5 두벡터의각원소간나눗셈 >> x./ y -0.3333 0 0.2000 38

벡터와통계량 벡터가주어졌을때, 벡터의통계량을계산 통계량 : 최대값, 최소값, 전체합, 평균, 분산, 표준편차등 >> x = [5 3 8 4]; >> min(x) 3 최소값 >> mean(x) 5 평균 >> max(x) 8 >> sum(x) 20 최대값 전체합 >> var(x) 4.6667 >> std(x) 2.1602 분산 표준편차 39

Quiz 대전초등학교 6 학년 1 반의성적이다음과같다고할때, 여러가지값들을구해봅시다. 6 학년 1 반의성적 국어수학과학체육 영희 98 83 89 89 철수 89 92 97 87 민수 78 86 91 96 1) 각과목별평균 2) 각학생별총점및평균 3) 각학생별최고점을받은과목의점수 4) 반전체점수합계및평균 40

Quiz Sol. 대전초등학교 6 학년 1 반의성적이다음과같다고할때, 여러가지값들을구해봅시다. 국어 수학 과학 체육 영희 98 83 89 89 철수 89 92 97 87 민수 78 86 91 96 >> s1 = [98 83 89 89]; >> s2 = [89 92 97 87]; >> s3 = [78 86 91 96]; 1) 각과목별평균 >> (s1+s2+s3)/3 2) 각학생별총점및평균 >> sum(s1) >> mean(s1) 3) 각학생별최고점을받은과목의점수 >> max(s1) 4) 반전체점수합계및평균 >> sum(s1+s2+s3) >> sum(s1+s2+s3) / 12 >> (mean(s1)+mean(s2)+mean(s3))/3 41

벡터일부원소가져오기 벡터 x 가아래와같이 10 개의원소를가진다고하자 >> x = linspace(1,100,10) x = 1 12 23 34 45 56 67 78 89 100 3~6 번째에위치한 ( 연속된 ) 원소들만을가져오고싶을때 >> x(3:6) x = 23 34 45 56 Colon Operator 1, 5, 7 번째에위치한 ( 떨어진 ) 원소들만을뽑아내고싶을때 >> x( [1 5 7] ) x = 1 45 67 3, 7~9 번째에위치한원소들을뽑아내고싶을때 >> x( [3 7:9] ) x = 23 67 78 89 42

벡터일부원소가져오기 벡터 x 가아래와같이 10 개의원소를가진다고하자 >> x = linspace(1,100,10) x = 1 12 23 34 45 56 67 78 89 100 3 번째에위치한원소의값을 10 으로바꾸고싶을때 >> x(3) = 10 x = 1 12 10 34 45 56 67 78 89 100 5:7 번째에위치한원소들의값을 -5 로바꾸고싶을때 >> x(5:7) = -5 x = 1 12 10 34-5 -5-5 78 89 100 3, 7~9 번째에위치한원소들의값을 105 로바꾸고싶을때 >> x([3 7:9]) = 105 x = 1 12 105 34-5 -5 105 105 105 100 6~8 번째위치한원소들의값을각각 100, 200, 300 으로바꾸고싶을때 >> x(6:8) = [100 200 300] x = 1 12 105 34-5 100 200 300 105 100 주의할점! 들어갈자리의개수와, 바꿀값의개수가동일해야함 43

Quiz 1 부터 10 까지 10 개의연속된숫자를가진벡터 x 가있을때, 벡터 x 의 짝수를벡터 x 의최대값에서자기자신을뺀값으로대체하여봅시다. 즉, x = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) 벡터가주어졌을때, 2 는 10-2, 4 는 10-4, 10 은 10-10 을계산하여, 최종적으로 (1, 8, 3, 6, 5, 4, 7, 2, 9, 0) 이결과로 나오게만들어봅시다. 힌트 : Colon operator, max 함수, 스칼라와벡터의차, 벡터의일부원소변경 44

Quiz Sol. 1 부터 10 까지 10 개의연속된숫자를가진벡터 x 가있을때, 벡터 x 의 짝수를벡터 x 의최대값에서자기자신을뺀값으로대체하여봅시다. 즉, x = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) 벡터가주어졌을때, 2는 10-2, 4는 10-4, 10은 10-10 을계산하여, 최종적으로 (1, 8, 3, 6, 5, 4, 7, 2, 9, 0) 이결과로나오게만들어봅시다. 힌트 : Colon operator, max 함수, 스칼라와벡터의차, 벡터의일부원소변경 >> x = 1:10 x = 1 2 3 4 5 6 7 8 9 10 >> x(2:2:10) = max(x) x(2:2:10) x = 1 8 3 6 5 4 7 2 9 0 45

벡터합치기 여러행벡터합치기 x = [1 2 3], y = [4 5], z = [6 7] 일때, 직접타이핑하지않고쉽고빠르게 [1 2 3 4 5 6 7] 벡터를생성하는방법은? >> x = [1 2 3]; >> y = [4 5]; >> z = [6 7]; >> [x y z] 1 2 3 4 5 6 7 주의할점! 벡터를합칠때, 둘다열벡터이거나행벡터이어야함 [ 실습 6] MATLAB 프롬프트에 [x y x] 를입력했을때어떠한결과가나오는지확인해봅시다. [x y ] 를입력했을때어떠한결과가나오는지확인해봅시다. 여러열벡터합치기 세미콜론을사용하면, 열벡터를열 (column) 방향으로병합한다. >> x = [1; 2; 3]; >> y = [4; 5]; >> [x; y] 1 2 3 4 5 46

행렬 (Matrix) 47

행렬 (Matrix) 행렬이란? 숫자를네모꼴로배열한것 벡터와행렬과의관계 행벡터 : 1 x n 행렬 열벡터 : n x 1 행렬 지금까지배운벡터의연산에관한내용들이사실은모두행렬연산 48

2 차원행렬만들기 행순으로원소를나열하고, 다음행의원소를나열하기전세미콜론 (;) 을적어줌 MM = 22 11 44 66 33 55 행렬생성하기 (2 x 3 행렬 ) >> M = [2 1 4; 6 3 5] M = 2 1 4 6 3 5 MM = 22 44 55 33 66 11 행렬생성하기 (3 x 2 행렬 ) >> M = [2 3; 4 6; 5 1] M = 2 3 4 6 5 1 49

다양한 2 차원행렬생성방법 행렬 MM = 22 11 44 66 33 55 77 33 99 를생성 < 방법 1> >> M = [2 1 4] M = 2 1 4 >> M = [M; 6 3 5] M = 2 1 4 6 3 5 >> M = [A; 7 3 9] M = 2 1 4 6 3 5 7 3 9 < 방법 2> >> M = [ [2 1 4]; [6 3 5]; [7 3 9] ] < 방법 3> >> r1 = [2 1 4]; >> r2 = [6 3 5]; >> r3 = [7 3 9]; >> M = [ r1; r2; r3 ] 50

특수목적의행렬생성함수 zeros, ones, eye, rand, randn zeros( m, n ) ones( m, n ) eye( m ) rand( m, n ) randn( m, n ) magic( m ) 모든원소가 0인 m x n 행렬생성모든원소가 1인 m x n 행렬생성대각선원소가 1로구성된 m x m 정방행렬생성 0~1 사이의 uniform 분포를가지는 m x n 행렬생성 0~1 사이의 normal 분포를가지는 m x n 행렬생성가로의합과세로의합이모두동일한 m x m 정방행렬 51

특수목적의행렬생성함수 [ 실습 7] 아래행렬생성함수들을직접입력해보고, m 과 n 값을 바꿔가며행렬을다양하게생성해봅시다. >> zeros(4, 3) >> ones(5, 3) >> eye(6) >> rand(3,5) >> randn(5,7) 52

행렬원소에접근하기 행렬원소는변수명 ( 열번호, 행번호 ) 로접근가능 MM = 1 2 3 4 5 6 7 8 9 10 11 12 의경우, M(1, 1) = 1, M(2,3) = 7, M(3,2) = 10, 각인덱스는 1 부터시작 >> M = [1 2 3 4; 5 6 7 8; 9 10 11 12] M = 1 2 3 4 5 6 7 8 9 10 11 12 >> M(2,3) 7 53

행렬의여러원소에접근하기 Colon Operator 를이용하여행렬의일부원소그룹에접근가능 MM = 1 2 3 4 5 6 7 8 9 10 11 12 행렬이주어져있을때, M 또는 M( :, : ) 행렬 M 전체를가리킴 ( 콜론 ( : ) 은 전체 를의미 M( :, k ) 행렬 M의 k번째열의모든원소를가져옴 M( k, : ) 행렬 M의 k번째행의모든원소를가져옴 M( m:n, : ) 행렬 M의 m~n번째행의모든원소를가져옴 M( :, m:n ) 행렬 M의 m~n번째열의모든원소를가져옴 M( m:n, p:q ) 행렬 M의 m~n번째행, p~q번째열에해당하는원소를가져옴 54

end 인덱스기호사용한행렬원소접근 end 는마지막행또는마지막열을가리키는인덱스 MM = 1 2 3 4 5 6 7 8 9 10 11 12 행렬이주어져있을때, M( :, end ) 행렬 M의마지막열의모든원소를가져옴 M( end, : ) 행렬 M의마지막행의모든원소를가져옴 M( k, end ) 행렬 M의 k번째행, 마지막열의원소를가져옴 M( end, k ) 행렬 M의마지막행, k번째열의원소를가져옴 M( :, m:end ) 행렬 M의 m번째 ~ 마지막열의모든원소를가져옴 M( m:end, : ) 행렬 M의 m번째 ~ 마지막행의모든원소를가져옴 55

행렬을배열처럼접근하기 n 차원행렬을 1 개의접근인덱스로접근가능 MM = 1 2 3 4 5 6 7 8 9 10 11 12 M(1) = 1, M(2) = 5, M(3) = 9,, M(10) = 4, M(11) = 8, M(12) = 12 M(end) = 12 행렬의벡터변환 콜론 (:) 을사용하면행렬의전체원소가선택됨 위와동일한방법으로행렬의개별원소들이순차적으로접근되고, 이들원소들을벡터로나열 >> M( : ) M = 1 5 9 2 6 10... 56

행렬원소가져오기 MM = 1 4 7 2 5 8 3 6 9 10 13 11 14 12 15 행렬 M 에서 1 번째, 3 번째열들만을가져오기 >> M = [1 4 7 10 13; 2 5 8 11 14; 3 6 9 12 15]; >> M(:, [1,3]) 1 7 2 8 3 9 동일열들을여러번가져오기 >> M = [1 4 7 10 13; 2 5 8 11 14; 3 6 9 12 15]; >> M(:, [1,3, 1, 3]) 1 7 1 7 2 8 2 8 3 9 3 9 57

행렬원소가져오기 MM = 1 4 7 2 5 8 3 6 9 10 13 11 14 12 15 Bit Mask 를이용하여선택된열가져오기 >> M = [1 4 7 10 13; 2 5 8 11 14; 3 6 9 12 15]; >> B = logical([ 1 0 0 1 0 ]); >> M(:, B) 1 10 2 11 3 12 MM = 1 4 7 2 5 8 3 6 9 10 13 11 14 12 15 BB = 1 0 0 1 0 58

Quiz 10 x 10 magic 행렬을생성에서짝수행, 짝수열인원소들을가져와서 5 x 5 행렬을만들어봅시다. M = 92 99 1 8 15 67 74 51 58 40 98 80 7 14 16 73 55 57 64 41 4 81 88 20 22 54 56 63 70 47 85 87 19 21 3 60 62 69 71 28 86 93 25 2 9 61 68 75 52 34 17 24 76 83 90 42 49 26 33 65 23 5 82 89 91 48 30 32 39 66 79 6 13 95 97 29 31 38 45 72 10 12 94 96 78 35 37 44 46 53 11 18 100 77 84 36 43 50 27 59 80 14 73 57 41 87 21 60 69 28 24 83 42 26 65 6 95 29 38 72 18 77 36 50 59 59

Quiz Sol. 10 x 10 magic 행렬을생성에서짝수행, 짝수열인원소들을가져와서 5 x 5 행렬을만들어봅시다. M = 92 99 1 8 15 67 74 51 58 40 98 80 7 14 16 73 55 57 64 41 4 81 88 20 22 54 56 63 70 47 85 87 19 21 3 60 62 69 71 28 86 93 25 2 9 61 68 75 52 34 17 24 76 83 90 42 49 26 33 65 23 5 82 89 91 48 30 32 39 66 79 6 13 95 97 29 31 38 45 72 10 12 94 96 78 35 37 44 46 53 11 18 100 77 84 36 43 50 27 59 80 14 73 57 41 87 21 60 69 28 24 83 42 26 65 6 95 29 38 72 18 77 36 50 59 >> M = magic( 10 ); >> M(2:2:end, 2:2:end) 60

행렬원소고치기 MM = 1 4 7 2 5 8 3 6 9 10 13 11 14 12 15 선택된행과열들을우변의스칼라값으로대체 M( 행인덱스 : 열인덱스 ) = 스칼라 선택된행과열을우변의행렬값으로대체 M( 행인덱스 : 열인덱스 = 행렬 >> M = [1 4 7 10 13; 2 5 8 11 14; 3 6 9 12 15]; >> M( [1,3], [2,4] ) = -1 M = 1-1 7-1 13 2 5 8 11 14 3-1 9-1 15 >> M( [1,3], [2,4] ) = [-5, -6; -7, -8]; M = 1-5 7-6 13 2 5 8 11 14 3-7 9-8 15 61

Quiz 10 x 10 magic 행렬을생성에서짝수행, 홀수열인원소들의값을 5 x 5 magic 행렬값으로대체하시오. M = 92 99 1 8 15 67 74 51 58 40 98 80 7 14 16 73 55 57 64 41 4 81 88 20 22 54 56 63 70 47 85 87 19 21 3 60 62 69 71 28 86 93 25 2 9 61 68 75 52 34 17 24 76 83 90 42 49 26 33 65 23 5 82 89 91 48 30 32 39 66 79 6 13 95 97 29 31 38 45 72 10 12 94 96 78 35 37 44 46 53 11 18 100 77 84 36 43 50 27 59 M = 92 99 1 8 15 67 74 51 58 40 17 80 24 14 1 73 8 57 15 41 4 81 88 20 22 54 56 63 70 47 23 87 5 21 7 60 14 69 16 28 86 93 25 2 9 61 68 75 52 34 4 24 6 83 13 42 20 26 22 65 23 5 82 89 91 48 30 32 39 66 10 6 12 95 19 29 21 38 3 72 10 12 94 96 78 35 37 44 46 53 11 18 18 77 25 36 2 50 9 59 62

Quiz Sol. 10 x 10 magic 행렬을생성에서짝수행, 홀수열인원소들의값을 5 x 5 magic 행렬값으로대체하시오. M = 92 99 1 8 15 67 74 51 58 40 98 80 7 14 16 73 55 57 64 41 4 81 88 20 22 54 56 63 70 47 85 87 19 21 3 60 62 69 71 28 86 93 25 2 9 61 68 75 52 34 17 24 76 83 90 42 49 26 33 65 23 5 82 89 91 48 30 32 39 66 79 6 13 95 97 29 31 38 45 72 10 12 94 96 78 35 37 44 46 53 11 18 100 77 84 36 43 50 27 59 M = 92 99 1 8 15 67 74 51 58 40 17 80 24 14 1 73 8 57 15 41 4 81 88 20 22 54 56 63 70 47 23 87 5 21 7 60 14 69 16 28 86 93 25 2 9 61 68 75 52 34 4 24 6 83 13 42 20 26 22 65 23 5 82 89 91 48 30 32 39 66 10 6 12 95 19 29 21 38 3 72 10 12 94 96 78 35 37 44 46 53 11 18 18 77 25 36 2 50 9 59 >> M = magic( 10 ); >> M(2:2:end, 1:2:end) = magic(5) 63

행렬연산하기 각종수학함수 행렬의각원소에대해적용 >> M = magic( 3 ); >> exp(m) 1.0e+03 * 2.9810 0.0027 0.4034 0.0201 0.1484 1.0966 0.0546 8.1031 0.0074 >> log(m) 2.0794 0 1.7918 1.0986 1.6094 1.9459 1.3863 2.1972 0.6931 >> sqrt(m) 2.8284 1.0000 2.4495 1.7321 2.2361 2.6458 2.0000 3.0000 1.4142 >> M = [-1.3 2.4; 4.3-2.9] M = -1.3000 2.4000 4.3000-2.9000 >> abs(m) 1.3000 2.4000 4.3000 2.9000 >> floor(m) -2 2 4-3 >> ceil(m) -1 3 5-2 절대값 내림 올림 64

행렬과스칼라연산 m x n 행렬 MM, 스칼라변수 c 가있을때, MM + cc = cc + MM MM cc cc MM MM cc = cc MM MM/cc MM./cc >> M = magic(2); >> c = 5; >> M + c 6 8 9 7 >> M c -4-2 -1-3 >> c a 4 2 1 3 >> a*c 5 15 20 10 >> c*a 5 15 20 10 >> a/c 0.2000 0.6000 0.8000 0.4000 >> c./a 5.0000 1.6667 1.2500 2.5000 65

행렬간연산 차원이동일한두벡터가있을때, >> x = [1 2 3; 4 5 6] >> y = [0 1-1; 3 2 4] 두행렬의합과차 >> x+y 1 3 2 7 7 10 >> x-y 1 1 4 1 3 2 두행렬의각원소간곱셈 >> x.* y 0 2-3 12 10 24 두행렬의각원소간나눗셈 >> x./ y Inf 2.0000-3.0000 1.3333 2.5000 1.5000 행렬의 n- 제곱근 >> x.^ 3 1 8 27 64 125 216 66

행렬연산하기 n x d 행렬과, d x m 행렬의곱 AA = 1 2 3 3 2 4 5 6, BB = 5 6 1 3 >> A = [1 2 3; 4 5 6]; >> B = [3 2; 5 6; 1 3]; >> A * B 16 23 43 56 67

Quiz Cayley-Hamilton 정리는아래와같다. (I 는항등행렬 ) AA = aa bb cc dd 일때, AA2 aa + dd AA + aaaa bbbb II = 0 행렬 AA = 2 1 1 4 일때, AA2 6AA + 9II = 0 임을보여라. 68

Quiz Sol. Cayley-Hamilton 정리는아래와같다. (I 는항등행렬 ) AA = aa bb cc dd 일때, AA2 aa + dd AA + aaaa bbbb II = 0 행렬 AA = 2 1 1 4 일때, AA2 6AA + 9II = 0 임을보여라. >> A = [2 1; -1 4] A = 2 1-1 4 >> A^2-6*A+9*eye(2) 0 0 0 0 69

Quiz 다음방정식을행렬로표현하고, 방정식의근을행렬연산을통해계산해봅시다. -3x 1 x 3 = -3 2x 1 + 5x 2 7x 3 = 1 -x 1 + 4x 2 + 8x 3 = 2 힌트 방정식의근구하는방법 Ax = b A -1 Ax = x = A -1 b m x m 정방행렬이 M 일때, M 의역행렬을구하는함수 : inv(m) 70

Quiz Sol. 다음방정식을행렬로표현하고, 방정식의근을행렬연산을통해 계산해봅시다. -3x 1 x 3 = -3 2x 1 + 5x 2 7x 3 = 1 -x 1 + 4x 2 + 8x 3 = 2 >> A = [-3 0-1; 2 5-7; -1 4 8] A = -3 0-1 2 5-7 -1 4 8 >> b = [-3 1 2] b = -3 1 2 >> x = inv(a) * b x = 0.9124 0.2028 0.2627 71

행렬과통계량 행렬이주어졌을때, 행렬의통계량을계산 행렬의열단위로계산 >> M = [5 3 8; 2 4 3]; >> min(m) 2 3 3 >> max(m) 5 4 8 >> sum(m) 7 7 11 최소값 최대값 전체합 >> mean(m) 평균 3.5000 3.5000 5.5000 >> var(m) 분산 4.5000 0.5000 12.5000 >> std(m) 표준편차 2.1213 0.7071 3.5355 72

행렬사용에익숙해지기 [ 실습 11] 대전초등학교 6 학년 1 반의성적이다음과같다고할때, 여러가지값들을구해봅시다. 6 학년 1 반의성적 국어수학과학체육 영희 98 83 89 89 철수 89 92 97 87 민수 78 86 91 96 1) 각과목별평균, 분산, 최고점및최저점 2) 각학생별총점및평균 3) 각학생별최고점을받은과목의점수 4) 반전체점수합계및평균 [ 실습 12] 6 학년 1 반의성적이행렬로주어져있을때, 채점오류로모든학생의체육점수를 3 점올리고, 과학점수를 2 점씩내리는작업을행렬연산을통해수행해봅시다. 73