MATLAB MATLAB 개요와 응용 1장 MATLAB 시작하기 10 5 0 황철호 -5-10 30 20 10 0 0 5 10 15 20 25 MATLAB 시작하기 이장의내용 MATLAB의여러창(window)들의 특성과 목적 기술 스칼라의 산술연산 및 기본 수학함수의 사용. 스칼라 변수들(할당 연산자)의 정의 및 변수들의 사용 방법 스크립트(script) 파일에 대한 소개와 간단한 MATLAB 프로그램의 작성, 저장 및 실행 MATLAB의특징 Interpreter 방식의 언어 Compiler 방식의 언어( C, Pascal, Fortran 등) 수학계산 및 가시화(visualization)에 매우 편리함 선형대수, 데이터 분석, 신호처리, 수치적분 등 많은 과학계산용 내장함 수를 제공함 사용자에 의한 함수 작성이 편리 배우기 쉽고 사용이 편하다. 다양한 분야의 광범위한 Toolbox를제공 1장 매트랩 시작하기 2/55 1
MATLAB의 데스크탑 창 MATLAB을 실행하면, 데스크탑 창이 열리며, 기본 화면에는 Command Window, Current Directory Window, Command History Window 등세개의작은창이포 함되어 있다. 창의 왼쪽 하단부에 있는 Start 버튼을 이용하여 MATLAB의 여러 도구와 기능에 접근할 수 있다. 1장 매트랩 시작하기 3/55 MATLAB의 데스크탑 창 명령어 창(Command Window) MATLAB을 실행시키면 나타나는 메인 창. Desktop 메뉴 Desktop Layout 메뉴에서 명령어 창의 모양을 선택함. Command Window Only 를 선택하면, 명령어 창 하나만 보임. Default desktop layout Command Window Only 1장 매트랩 시작하기 4/55 2
MATLAB의 여러 창 Workspace Window 사용된 변수들에 대한 정보 제공 Editor Window 프로그램 작성 및 편집 Toolbar 그림창 그래프 명령어가 실행되면 자동 생성됨 Command History Window 명령어 창에서 입력된 명령어들이 기록 되어 있음 1장 매트랩 시작하기 5/55 MATLAB Help Windows 1장 매트랩 시작하기 6/55 3
창의 분리(undock)와 재결합(dock) undock dock 1장 매트랩 시작하기 7/55 명령어 창에서의 작업 명령어 창은 MATLAB의 메인 창으로 명령어의 실행, 사용자 가 작성한 프로그램의 실행, 다 른창열기, 소프트웨어의 관리 등에 사용된다. 명령어 입력을 위해서는 커서 가 프롬프트 >> 바로 뒤에 놓여야 함 명령어 입력을 위해서는 커서 가 프롬프트 >> 바로 뒤에 놓여야 한다. 명령어를 표시하고 Enter 키를 누르면, 명령어가 실행된다. 항상 직전에 입력 한 명령어만 실행되며, 전에 실행된 다른 것들은 변동이 없다. 명령어 창에서 커서를 윗줄로 옮겨서 이전 명령어를 수정하여 다시 실행시키 는 것은 불가능하다. 1장 매트랩 시작하기 8/55 4
명령어 창(Command Window)에서의 작업 명령어와 명령어 사이에 콤마(,)를 넣 어여러명령어를한줄에표시할수 있으며, Enter키를 누르면 왼쪽에서 오른쪽 순서대로 명령어가 수행된다. 명령어 창에서 커서를 윗줄로 옮겨서 이전 명령어를 수정하여 다시 실행시 키는 것은 불가능하다. 위쪽 방향키 를 누를 때마다 이전에 입력했던 명령어가 역순으로 프롬프 트 >> 다음에 나타난다. 명령어가 >> 다음에 나타나면, 명령어를 수정하거나 그대로 실행시킬 수 있다. 아래쪽 방향키 는 위쪽 방향키와 반대의 순서대로 이전 명령어들을 불러낼 수 있다. 명령어가 너무 길어 한 줄에 쓸 수 없는 경우, 마침표세개...을 찍고Enter 키 를 누르면 다음 줄에서 이어서 쓸 수 있다(총 4096 글자까지) 1장 매트랩 시작하기 9/55 세미콜론(;)과 % 표시, clc 명령어 명령어 창에 명령어를 표시하고 Enter 키를 누르면, 명령어가 실행되어 출력이 명령어 창에 표시되는데, 명령어 끝에 세미콜론(;)을 붙이면 출력이 표시되지 않는다. 세미콜론은 결과의 양이 상당히 많거나 결과를 이미 알고 있을 때 유용하다. 여러 명령어를 한 줄에 쓸 때 명령어와 명령어 사이에 콤마 대신 세미콜론을 쓰면 출력이 화면에 표시되지 않는다. 기호 %를 명령어줄제일앞에쓰면이줄은주석문(comment)으로 지정되어 Enter 키를 눌러도 실행이 되지 않는다. 같은 줄에서 명령어 다음에 % 기호와 텍스트를 같이 쓰게 되면, 주석문은 명령어의 수행에 전혀 영향을 주지 않는다. 일반적으로 명령어 창에서 주석문을 붙일 필요는 없으나, 프로그램에서는 기술 할 사항을 추가하거나 프로그램 설명을 위해 종종 주석문을 사용한다. clc 명령어는 명령어 창에서 입력한 명령어들과 결과 출력물들을 지워서 명령 어 창을 깨끗이 만든다. clc 명령어로 이전에 수행된 어떠한 것도 변하지는 않으며, 이전에 정의된 변수들 도 존재하며 재사용이 가능하다. 방향키 를 이용하여 이전 명령어를 불러낼 수 도있다. 1장 매트랩 시작하기 10/55 5
명령어기록 창(Command History Window) Command History 창은 명령 창에서 그 동안 입력했던 명령어들의 목록을 보 여주며, 현재 명령어 창에서 입력한 명령어 뿐만 아니라 이전에 입력했던 명령 어들도 포함된다. Command History 창에 있는 명령어들은 명령어 창에서 다시 사용할 수 있다. MATLAB은 이전에 입력한 명령어들을 버퍼에 저장하므로 과거 입력기록들을 Command History 창에서 볼 수 있다. Command History 창에서 원하는 명령어를 마우스로 명령어 창으로 끌고 올 수 있으며(dragging), 필요하면 또는 화살표를 이용하여 원하는 위치에서 명 령어를 추가하거나 수정하고 Enter 키를 눌러 실행시킬 수 있다. 명령어기록 창에서 원하는 명령어를 마우스로 더블 클릭(double click)하면 해당 명령어가 바로 실행된다. 명령어기록 창에 있는 명령어들은 원하는 명령어들을 선택한 후 키보드의 delete 키를 누르거나 Edit 메뉴에서 Delete Selection을 선택하여 삭제할 수 있다. 또는 삭제하기 위해 선택한 명령어들 위에서 마우스 우측 버튼을 눌러 나온 팝업메뉴 에서 Delete Selection을선택해도된다. 1장 매트랩 시작하기 11/55 스칼라산술연산 MATLAB에서 사용하는 산술연산자들의 기호 : 연산 기호 예 덧셈 + 5+3 뺄셈 - 5-3 곱셈 * 5*3 오른쪽 나눗셈 / 5/3 왼쪽 나눗셈 \( ) 5\3(=3/5) 지수연산 ^ 5^3(5 3 을의미함) 주) 한글Windows에서는 \ 가 (키보드의 )로 표시됨 왼쪽 나눗셈을 제외한 나머지 기호들은 대부분의 계산기에서와 같다. 스칼 라의 경우, 왼쪽 나눗셈(left division)은 오른쪽 나눗셈(right division)의 역 수이지만, 배열에 대한 연산(3장참조)에대해서는왼쪽나눗셈이주로사용 된다. 1장 매트랩 시작하기 12/55 6
스칼라 산술 연산에서의 우선 순위 MATLAB에서의 산술 연산 우선 순위 우선순위 1순위 2순위 3순위 4순위 수학 연산 괄호 괄호가 중첩된 경우, 가장 안쪽의 괄호부터 수행됨 거듭제곱 곱하기, 나누기(우선순위가 동등함) 더하기와 빼기 여러 연산이 포함된 식에서, 우선 순위가 더 높은 연산이 더 낮은 연산보다 먼저 수행된다. 둘 이상의 연산이 같은 우선순위를 가지면, 왼쪽에서 오른쪽으로 식이 수 행된다. 계산 순서를 바꾸기 위해 괄호를 사용할 수 있다. 1장 매트랩 시작하기 13/55 산술연산 예 (1/3) >> 4*50+3*100+10^2-400/2 400 >> 2^5/(2^5-1) 1.0323 >> 2*(sqrt(5)-1)/(sqrt(5)+1)^2-1 -0.7639 >> 10*acos(-1) 31.4159 >> x=2; y=6+x, x=y+7 y = 8 x = 15 >> exp(3); %e 3 >> log10(10^5); %log 10 10 5 연산 순서:수학의 일반 규칙과 동일 1. 괄호 먼저 계산한다 2. 지수 계산 3. 곱하기, 나누기는 왼쪽에서 우측 방향으로 4. 더하기, 빼기는 왼쪽에서 우측 방향으로 ;(세미콜른) 계산결과 표시 억제,(콤마) 한 줄에 여러 명령어를 입력하면서 계산결과 표시 % 프로그램을 설명할 때 사용하며, 명령과는 무관함 1장 매트랩 시작하기 14/55 7
산술연산 예 (2/3) MATLAB에서 산술연산은 명령어 창에 수식을 입력한 후 Enter 키를 누르 면 계산이 되며, 그다음두줄에걸쳐 ans= 과 결과(답)가 표시된다. >> 7+8/2 %8/2가 먼저 수행됨 11 >> (7+8)/2 7.5000 >> 4+5/3+2 %5/3이 먼저 수행됨 7.6667 >> 5^3/2 %5 3 이 먼저 수행됨 62.5000 >> 27^(1/3)+32^0.2 %27 (1/3) +32 0.2 5 >> 27^1/3+32^0.2 %(27 1 )/3 + 32 0.2 11 >> 0.7854-(0.7854)^3/(1*2*3)+0.785^5/ (1*2*3*4*5)-(0.785)^7/(1*2*3*4*5*6*7) 0.7071 >> 7/2 3.5000 >> 7\2 %\대신 가 표시됨(한글윈도) 0.2857 >> ans 0.2857 1장 매트랩 시작하기 15/55 산술연산 예 (3/3) 오류를 피하거나 식을 읽기 쉽도록 괄호를 적절하게 사용하는 것이 좋다. >> 2*4^3 + 5 %2 4 3 +5 133 >> (2*4)^3 + 5 %(2 4) 3 +5 517 >> (2* 4) ^3 / 5 %(2 4) 3 /5 연산자 사이에 공백이 있어도 상관없다! 102.4 >> 9^(1/2) %9 1/2 3 >> 9^1/2 %9 1 /2 4.5000 1장 매트랩 시작하기 16/55 8
출력 형식 (1/3) MATLAB의 기본(default) 출력 형식은 소수점 이하 네 자리를 가진 고정소수 점(short라고 부름)이다. >> 4+5/3+2 7.6667 기본 출력형식은 format 명령어로 바꿀 수 있으며, format 명령어가 실행된 이 후의 모든 출력은 규정된 형식으로 표시된다. 자세한 형식은 명령어 창에서 help format을 입력하면 알 수 있다. 수를 화면에 표시하는 형식은 MATLAB이 수를 계산하고 저장하는 방법에는 영향을 미치지 않는다. 명령어 설명 예 format short format long 0.001<수 1000인 수를소수점 이하 네 자리수의 고정소수점으로 표시함. 그 외의 범위의 수는 short e 형식으로 표시함. 0.001<수 1000인 수를소수점 이하 15자리의 고 정소수점으로 표시함. 그 외 범위의 수는 long e의 형식으로 표시함. 41.4286 41.42857142857143 1장 매트랩 시작하기 17/55 출력 형식 (2/3) 명령어 설명 예 format short e format long e format short g format long g format bank format compact format loose 소수점 이하 네 자리수의 과학적 표기법으 로 표시함. 소수점 이하 15 자리수의 과학적 표기법으 로 표시함. 고정소수점 표시와 부동소수점 표시 중에 서 더 편한 방법으로 표시. 유효숫자는 5개 고정소수점 표시와 부동소수점 표시 중 더 편한 방법으로 표시. 유효숫자는 15개. 4.1429e+001 4.142857142857143e+001 41.429 41.4285714285714 소수점 이하 두 자리까지만 표시함. 41.43 화면에 많은 정보가 표시되도록 하기 위해 빈 줄을 제거함 format compact와 반대로 빈 줄을 삽입함 1장 매트랩 시작하기 18/55 9
출력 형식 (3/3) MATLAB의 산술연산은 명령어 창에서 수식을 입력하고 Enter 키를 누르 면 수식이 계산되며, 다음 두 줄에 걸쳐 ans=과 결과가 표시된다. >> 7+8/2 %8/2가먼저수행됨 11 >> (7+8)/2 7.5000 >> 4+5/3+2 %5/3이 먼저 수행됨 7.6667 >> 5^3/2 %5 3 이먼저수행됨 62.5000 >> 27^(1/3)+32^0.2 %27 (1/3) +32 0.2 5 >> 27^1/3+32^0.2 %(27 1 )/3 + 32 0.2 11 >> 0.7854-(0.7854)^3/(1*2*3)+0.785^5/ (1*2*3*4*5)-(0.785)^7/(1*2*3*4*5*6*7) 0.7071 >> 7/2 3.5000 >> 7\2 %\대신 가 표시됨(한글윈도) 0.2857 >> ans 0.2857 1장 매트랩 시작하기 19/55 기본 수학 내장함수 MATLAB은 광범위한 내장함수 library를갖고있으며, 수식에 포함할 수 있다. 내장함수는 함수이름과 괄호 속의 인자(argument)로 구성된다. 예) sqrt(x) : 수의 제곱근을 계산하는 함수. 함수 이름은 sqrt, 인자는 x이다. 함수의 인자는 수, 또는 수치가 할당된 변수, 수와 변수로 구성된 계산 가능한 수식 등이 될 수 있다. 함수가 인자에 포함될 수도 있다. >> sqrt(64) % 수인자 8 >> sqrt(50+14*3) % 수식 인자 9.5917 >> sqrt(54+9*sqrt(100)) % 함수가 포함된 인자 12 >> (15+600/4)/sqrt(121) % 수식이 포함된 인자 15 1장 매트랩 시작하기 20/55 10
MATLAB 기본 수학 내장함수 함수 설명 예 sqrt(x) nthroot(x, n) 제곱근 exp(x) 지수함수(e x ) abs(x) 실수 x의 실수 n제곱근. (x가 음수이면, n은 홀수 정수이어야 함) 절대값 >> sqrt(81) 9 >> nthroot(80, 5) 2.4022 >> exp(5) 148.4132 >> abs(-24) 24 log(x) log10(x) factorial(x) 자연로그. 밑이 e인 로그(ln) 밑이 10인로그 계승함수 x! (x는 양의 정수이어야 함) >> log(1000) 6.9078 >> log10(1000) 3.0000 >> factorial(5) 120 전체 내장함수 목록은 Help Window에서 종류별로 분류된 목록을 참조한다. 1장 매트랩 시작하기 21/55 MATLAB 삼각함수 각이 라디안 단위일 때 삼각함수는 sin(x), cos(x), tan(x), cot(x)이고 역삼각함수는 asin(x), acos(x), atan(x), acot(x)이다. 각이 도(degree) 단위일 때 삼각함수는 sind(x), cosd(x), tand(x), cotd(x)이고 역삼 각함수는 asind(x), acosd(x), atand(x), acotd(x)이다. 쌍곡삼각함수(hyperbolic trigonometric function)는 sinh(x), cosh(x), tanh(x), coth(x)이다. π는 pi로 입력한다. 함수 설명 예 sin(x) sind(x) cos(x) cosd(x) tan(x) tand(x) cot(x) cotd(x) 각도 x의사인(x는 라디안) 각도 x의사인(x는 도) 각도 x의 코사인(x는 라디안) 각도 x의 코사인(x는 도) 각도 x의 탄젠트(x는 라디안) 각도 x의 탄젠트(x는 도) 각도 x의 코탄젠트(x는 라디안) 각도 x의 코탄젠트(x는 도) >> sin(pi/6) 0.5000 >> cosd(30) 0.8660 >> tan(pi/6) 0.5774 >> cotd(30) 1.7321 1장 매트랩 시작하기 22/55 11
어림 함수(rounding function) 함수 설 명 예 round(x) fix(x) ceil(x) floor(x) rem(x, y) sign(x) 가장 가까운 정수로 반올림(사사오입)함 0쪽에 가까운 정수로 어림함 양의 무한대에 가까운 정수로 어림함 음의 무한대 쪽에 더 가까운 정수로 어림함 x를 y로나눈나머지를돌려준다. Signum 함수로서, x>0이면 +1을, x<0이면 -1을, x=0이 면 0을 돌려준다. >> round(3.4) 3 >> fix(2.6) 2 >> ceil(2.2) 3 >> floor(-2.25) -3 >> rem(13,5) 3 >> sign(5) 1 1장 매트랩 시작하기 23/55 12