You are on page 1of 38

MATLAB

MATLAB 개요와 응용
1장 MATLAB 시작하기

10

-5

소속 : 인하대학교 수학과 -10


전공 : 응용수학(수치해석) 30
25
강사 : 정 신 자
20
20
15
10 10
5
0 0

1/38
MATLAB MATLAB 활용에 대하여

1장 매트랩 시작하기 2/38


MATLAB MATLAB 활용에 대하여

1장 매트랩 시작하기 3/38


MATLAB MATLAB 활용에 대하여

1장 매트랩 시작하기 4/38


MATLAB MATLAB 활용에 대하여

1장 매트랩 시작하기 5/38


MATLAB MATLAB 활용에 대하여

1장 매트랩 시작하기 6/38


MATLAB MATLAB 활용에 대하여

9. 다음자료로 막대그래프를 그려보아라.


(1,9), (2,13), (3,7), (4,10), (5,7), (6,5), (7,12)

1장 매트랩 시작하기 7/38


MATLAB MATLAB 활용에 대하여

그외 그래프들
3차원그래프
선그래프, 구 그래프, 등고선
2변수 함수의 그래프

음함수 그래프
매개방정식 그래프…

1장 매트랩 시작하기 8/38


MATLAB MATLAB 활용에 대하여

1장 매트랩 시작하기 9/38


MATLAB MATLAB 활용에 대하여

1장 매트랩 시작하기 10/38


MATLAB MATLAB활용에 대하여

기호 도구상자를 시용하려면 기호변수


(symbolic variable)을 생성하여야 한다.
>> syms x y %기호변수 x,y생성

•함수의 극한, 미분과 적분(정적분,부정적분)


•역함수와 합성함수
•방정식의 해 등

많은 문제들을 해결 할 수 있다.

1장 매트랩 시작하기 11/38


MATLAB MATLAB 시작하기

 MATLAB의 특징
 Interpreter 방식의 언어,
* Compiler 방식의 언어( C, Pascal, Fortran 등)
Interpreter: 컴파일없이 소스코드상에서 바로 실행하므로 프로그램
작성및 수정작업을 하는 번거로움이 적다. “중간중간 프로그램이 잘
돌아가는지 확인이 가능하다.
그러나 실행과 동시에 해석하므로 속도가 느리다.
Compiler: 컴퓨터가 미리 해석을 하고 실행하는 방식이라
속도가빠르다.
 수학계산 및 가시화(visualization)에 매우 편리함
 선형대수, 데이터 분석, 신호처리, 수치적분 등
많은 과학계산용 내장함수를 제공함
 사용자에 의한 함수 작성이 편리
 배우기 쉽고 사용이 편하다.
 다양한 분야의 광범위한 Toolbox를 제공
1장 매트랩 시작하기 12/38
MATLAB MATLAB의 데스크탑 창
 MATLAB을 실행하면, 데스크탑 창이 열리며, 기본 화면에는 Command Window,
Current Directory Window, Command History Window 등 세 개의 작은 창이
포함되어 있다.

1장 매트랩 시작하기 13/38


MATLAB MATLAB의 데스크탑 창
 명령어 창(Command Window)
 MATLAB을 실행시키면 나타나는 메인 창.
 Desktop 메 뉴 →Desktop Layout 메 뉴 에 서 명 령 어 창 의 모 양 을 선 택 함 .
“Command Window Only”를 선택하면, 명령어 창 하나만 보임.

Default desktop layout

Command Window Only

1장 매트랩 시작하기 14/38


MATLAB MATLAB의 여러 창
Toolbar
Workspace Window
사용된 변수들에 대한
정보 제공
그림창
그래프 명령어가
실행되면 자동 생성됨

Editor Window
프로그램 작성 및
편집

Command History Window


명령어 창에서 입력된 명령어들이
기록되어 있음
1장 매트랩 시작하기 15/38
MATLAB MATLAB Help Windows

1. search for: plot을 입력


2. >> help plot
3. >> lookfor plot
4. >> doc plot

1장 매트랩 시작하기 16/38


MATLAB 창의 분리(undock)와 재결합(dock)

undock
dock

1장 매트랩 시작하기 17/38


MATLAB 명령어 창에서의 작업

 명령어 창은
MATLAB의 메인 창으로 명령어의 실행,
사용자가 작성한 프로그램의 실행,
소프트웨어의 관리 등에 사용된다.

명령어 입력을 위해서는 커서 ‘|’ 가


프롬프트 ‘ >> ’ 바로 뒤에 놓여야 함

 명령어 입력을 위해서는


* 커서 | 가 프롬프트 >> 바로 뒤에 놓여야 한다.
* Enter 키를 누르면, 명령어가 실행된다.
* 이전 명령어를 수정 하여 다시 실행 시키는 것은 불가능하다.
* 사용한 명령어를 재 사용시 ▲▼버튼으로 찾을수 있다.

1장 매트랩 시작하기 18/38


MATLAB
명령어 창(Command Window)에서의 작업

 콤마(,)
여러 명령어를 한 줄에 표시 할 수 있다.
;(semicolon) 역시 콤마와 같은 실행을 할수 있다.
그러나 화면에 값을 출력해주지는 않는다.

 명령어가 너무 길어 한 줄에 쓸 수 없는 경우, 마침표 세 개 ...을 찍고 Enter 키를 누르면 다음 줄에서


이어서 쓸 수 있다(총 4096 글자까지)
 기호 %
주석문(comment)으로 지정되어 Enter 키를 눌러도 실행이 되지 않는다.

1장 매트랩 시작하기 19/38


MATLAB 세미콜론(;)과 clc,clear,who(s) 명령어

clc 명령어창을 깨끗하게 지운다.


명령어창 뿐만 아니라
clear
메모리에 저장된 값도 지운다.
clear와 동일하게
clear all
실행했던 모든 변수를 지운다.
clear a 변수 중 a만을 clear한다.

clear a* a로 시작하는 모든 변수를 clear한다.

who 저장된 변수

whos 변수의 자세한 정보

1장 매트랩 시작하기 20/38


MATLAB 스칼라 산술 연산
 MATLAB에서 사용하는 산술연산자들의 기호 :

연산 기호 예
덧셈 + 5+3
뺄셈 - 5-3
곱셈 * 5*3 주) 한글Windows에서는 ‘\’가
‘\’(키보드의 \)로 표시됨
오른쪽 나눗셈 / 5/3
왼쪽 나눗셈 \(\) 5\3(=3/5)
지수연산 ^ 5^3(53 을 의미함)

 왼쪽 나눗셈을 제외한 나머지 기호들은 대부분의 계산기에서와 같다.

1장 매트랩 시작하기 21/38


MATLAB 스칼라 산술 연산에서의 우선 순위

 MATLAB에서의 산술 연산 우선 순위

우선순위 수학 연산
1순위 괄호 ※ 괄호가 중첩된 경우, 가장 안쪽의 괄호부터 수행됨

2순위 거듭제곱

3순위 곱하기, 나누기(우선순위가 동등함)

4순위 더하기와 빼기

 둘 이상의 연산이 같은 우선순위를 가지면,


왼쪽에서 오른쪽으로 식이 수행된다.
 계산 순서를 바꾸기 위해 괄호를 사용할 수 있다.

1장 매트랩 시작하기 22/38


MATLAB 산술연산 예
%예제1번 답=400
>> 4*50+3*100+10^2-400/2

%예제2번 답=1.0323
>> 2^5/(2^5-1)

%예제3번 답=-0.7639
>> 2*(sqrt(5)-1)/(sqrt(5)+1)^2-1

%예제4번 답=31.4159
>> 10*acos(-1)

%예제5번 답x=15,y=8
>> x=2; y=6+x, x=y+7

%예제6번답 =3,5
>> exp(3)
>> log10(10^5)

%예제7번답 = 5
>>27^(1/3)+32^0.2

1장 매트랩 시작하기 23/38


MATLAB 실수하기 쉬운 산술연산 예

 오류를 피하거나 식을 읽기
>> 2*4^3 + 5 % 243 + 5
쉽도록 괄호를 적절하게 사용하는
ans =
것이 좋다.
133
>> (2*4)^3 + 5 % (24)3 + 5
ans =
517
>> (2* 4) ^3 / 5 % (24)3/5 ← 연산자 사이에 공백이 있어도 상관없다!
ans =
102.4
>> 9^(1/2) % 91/2
ans =
3
>> 9^1/2 % 91/2
ans =
4.5000

1장 매트랩 시작하기 24/38


MATLAB 출력 형식
 MATLAB의 기본(default) 출력 형식은
소수점 이하 네 자리를 가진 고정소수점(short라고 부름)이다.

>> 4+5/3+2
ans =
7.6667
 기본 출력형식은 format 명령어로 바꿀 수 있으며, format 명령어가 실행된 이후의 모든 출력은 규정된
형식으로 표시된다.
자세한 형식은 명령어 창에서 help format을 입력하면 알 수 있다.

 수를 화면에 표시하는 형식은 MATLAB이 수를 계산하고 저장하는 방법에는 영향을 미치지 않는다.

명령어 설명 예

0.001< 수 ≤1000 인 수 를 소 수 점 이 하 네 자 리 수 의 >> 290/7


format short 고정소수점으로 표시함. 그 외의 범위의 수는 short e ans =
형식으로 표시함. 41.4286

0.001< 수 ≤ 1000 인 수 를 소 수 점 이 하 15 자 리 의 >> 290/7


format long 고정소수점으로 표시함. 그 외 범위의 수는 long e의 ans =
형식으로 표시함. 41.42857142857143

1장 매트랩 시작하기 25/38


MATLAB 출력 형식

명령어 설명 예

소수점 이하 네 자리수의
>> 290/7
format short e 과학적 표기법으로 표시함. ans =
4.1429e+001

소수점 이하 15 자리수의 >> 290/7


format long e 과학적 표기법으로 표시함. ans =
4.142857142857143e+001
>> 290/7
고정소수점 표시와 부동소수점 표시 중
format short g 더 편한 방법으로 표시. 유효숫자는 5개
ans =
41.429

고정소수점 표시와 부동소수점 표시 중


>> 290/7
format long g 더 편한 방법으로 표시. 유효숫자는 15개. ans =
41.4285714285714
>> 290/7
format bank 소수점 이하 두 자리까지만 표시함. ans =
41.43
format compact 화면에 많은 정보가 표시되도록 하기 위해 빈 줄을 제거함

format loose format compact와 반대로 빈 줄을 삽입함

1장 매트랩 시작하기 26/38


MATLAB 기본 수학 내장함수

 MATLAB은 광범위한 내장함수 library를 갖고 있으며, 수식에 포함할 수 있다.


 내장함수는 함수이름과 괄호 속의 인자(argument)로 구성된다.
예) sqrt(x) : 수의 제곱근을 계산하는 함수. 함수 이름은 sqrt, 인자는 x이다.
 함수의 인자는 수, 또는 수치가 할당된 변수, 수와 변수로 구성된 계산 가능한 수식 등이 될 수 있다.
함수가 인자에 포함될 수도 있다.

>> sqrt(64) % 수 인자
ans =
8
>> sqrt(50+14*3) % 수식 인자
ans =
9.5917
>> sqrt(54+9*sqrt(100)) % 함수가 포함된 인자
ans =
12
>> (15+600/4)/sqrt(121) % 수식이 포함된 인자
ans =
15
1장 매트랩 시작하기 27/38
MATLAB MATLAB 기본 수학 내장함수
함수 설명 예
>> sqrt(81)
sqrt(x) 제곱근
ans = 9
>> exp(5)
exp(x) 지수함수(ex)
ans = 148.4132
>> abs(-24)
abs(x) 절대값
ans = 24
자연로그. >> log(1000)
log(x) 밑이 e인 로그(ln) ans = 6.9078
>> log10(1000)
log10(x) 밑이 10인 로그
ans = 3.0000
계승함수 x! >> factorial(5)
factorial(x) (x는 양의 정수이어야 함) ans = 120

 전체 내장함수 목록은 Help Window에서 종류별로 분류된 목록을


참조한다.

1장 매트랩 시작하기 28/38


MATLAB 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) 각도 x의 사인(x는 라디안) >> sin(pi/6)


sind(x) 각도 x의 사인(x는 도) ans =
0.5000

cos(x) 각도 x의 코사인(x는 라디안) >> cosd(30)


cosd(x) 각도 x의 코사인(x는 도) ans =
0.8660

tan(x) 각도 x의 탄젠트(x는 라디안) >> tan(pi/6)


tand(x) 각도 x의 탄젠트(x는 도) ans =
0.5774

cot(x) 각도 x의 코탄젠트(x는 라디안) >> cotd(30)


cotd(x) 각도 x의 코탄젠트(x는 도) ans =
1.7321

1장 매트랩 시작하기 29/38


MATLAB 어림 함수(rounding function)

함수 설 명 예
>> round(3.4)
round(x) 가장 가까운 정수로 반올림함 ans =
3
>> fix(2.6)
fix(x) 0쪽에 가까운 정수로 어림함 ans =
2
>> ceil(2.2)
ceil(x) 양의 무한대에 가까운 정수로 어림함 ans =
3
>> floor(-2.25)
floor(x) 음의 무한대 쪽에 더 가까운 정수로 어림함 ans =
-3
>> rem(13,5)
rem(x, y) x를 y로 나눈 나머지를 돌려준다. ans =
3

Signum 함 수 로 서 , x>0 이 면 +1 을 , x<0 이 면 -1 을 , >> sign(5)


sign(x) ans =
x=0이면 0을 돌려준다. 1

1장 매트랩 시작하기 30/38


MATLAB 프로그래밍에서의 ‘=’의 의미

 MATLAB을 포함한 프로그래밍 언어에서의 ‘=’ 부호는 수학에서의 ‘같다’라는


의미보다는 할당(assignment)이나 대체(replacement)의 의미를 갖는다.

예) >> x=5 % x라는 변수를 만들어 5라는 값을 할당(저장)한다.

>> x = x + 10 % 현재 x의 값에 10을 더한 결과를 다시 x에 저장하여


기존의 값을 대체한다.

‘=’ 부호의 의미가 수학과 달리 양변이 같다는 의미가 아니므로 좌변에는 반드시
변수가 와야 하며, 상수나 식이 오게 되면 다음과 같이 에러 메시지를 얻게 된다 :

>> x*2=6
??? x*2=6
Error: The expression to the left of the equals sign is not a valid target for an
assignment.

1장 매트랩 시작하기 31/38


MATLAB 스칼라 변수와 할당 연산자

 변수는 한 개의 문자, 또는 여러 문자들(숫자 포함)의 조합으로 이루어진 이름으로 수치


값이 할당된다.
 변수는 데이터를 저장할 메모리 장소의 이름을 나타내며, 새로운 변수가 정의되면
MATLAB은 배정받은 변수의 값이 저장될 적절한 메모리 공간을 할당한다. 변수가
사용되면 변수에 저장된 데이터가 사용된다.
 변수에 새로운 값이 할당되면, 메모리 위치의 내용이 갱신된다.
 할당 연산자(assignment operator) ‘=’는 우측 값을 좌측 변수에 할당한다.

variable_name = 수치 값 또는 계산 가능한 식

 할당 연산자 =의 좌변은 한 개의 변수이름만을 포함할 수 있다. 우변이 수식인 경우


수치 값이 할당된 변수들은 수식에 포함될 수 있다.
 Enter 키를 누르면 우변의 수치 값이 변수에 할당되며, MATLAB은 다음 두 줄에
걸쳐 변수와 할당된 값을 화면에 표시한다.

>> x=15 % 수 15가 변수 x에 할당됨 >> x=3*x-12 % 새로운 값이 x에 할당됨


x= x=
15 33

1장 매트랩 시작하기 32/38


MATLAB 할당 연산자
>> a=12 % 수 12를 a에 할당함 >> C=(a-B)+40-a/B*10 우변의 수식 값을
a= C= C에 할당함
12 18
>> B=4 % 수 4를 B에 할당함
B=
4

 명령어 끝에 세미콜론을 붙이고 Enter 키를 누르면, 실행결과가 화면에 출력되지


않는다. 물론 변수는 메모리에 저장된다.

 이미 생성된 변수의 이름을 입력하면 변수와 값이 화면에 출력된다.


 같은 줄에 여러 할당문을 쓰려면, 할당문 사이에 콤마 또는 세미콜론을 삽입하며, Enter
키를 누르면 왼쪽에서 오른쪽으로 할당문이 실행되어 결과가 화면에 출력된다.

>> a=12; >> a=12, B=4; C=(a-B)+40-a/B*10


>> B=4; a=
>> C=(a-B)+40-a/B*10; 12
>> C C=
C= 18
18

1장 매트랩 시작하기 33/38


MATLAB 할당 연산자

 이미 생성된 변수는 새로운 값을 다시 할당 받을 수도 있다.


 일단 변수가 정의되고 나면, 변수는 함수의 인자(argument)로 사용될 수 있다.

>> ABB=72;
>> ABB=9;
>> ABB % 변수의 현재 값이 출력됨
ABB =
9

>> x=0.75;
>> E=sin(x)^2+cos(x)^2
E=
1

1장 매트랩 시작하기 34/38


MATLAB 변수(variable) 이름에 대한 규칙

 변수 이름은 문자로 시작해야 하며, 길이는 MATLAB 7의 경우 63개(6.0 버전까지는


31개)까지 가능하다.
예) var, temp_1, temp_2, x, y, ave_1
 이름에 문자, 숫자, ‘ _ ’ 등을 포함할 수 있으며, 마침표, 콤마, 세미콜론 등은 포함할 수
없다. 이름 사이에 공백을 둘 수 없으며, 필요하면 ‘_’를 이용한다.
 변수는 대∙소문자를 구별한다. 즉 다음 변수들은 모두 다른 변수들이다:
예) AA, Aa, aA, aa

 내장함수 이름(예: cos, sin, exp, sqrt, …)은 사용하지 않도록 한다. 함수 이름을 변수로
정의하게 되면, 해당 세션에서는 함수를 사용할 수 없다.
 MATLAB에 의해 예약된 17개의 키워드도 변수 이름으로 사용할 수 없다. 명령어 창에서
키워드를 입력하면, 키워드는 파란 색으로 표시된다. 만일 사용자가 키워드를 변수
이름으로 사용하려고 하면 에러 메시지가 표시된다. 명령어 iskeyword를 입력하면
화면에 키워드들이 출력된다.
예) break, case, catch, continue, else, elseif, end, for, function, global, if,
otherwise, persistent, return, switch, try, while

1장 매트랩 시작하기 35/38


MATLAB 변수(variable) 이름에 대한 규칙

 아래와같은 변수들을 다른 값으로 다시 정의할 수도 있다. 그러나 변수 pi, eps, inf는 많은


응용프로그램에서 자주 사용되는 변수이므로 굳이 다른 값으로 다시 정의하지는 않는다.

 MATLAB에서 자주 사용되는 변수들을 다음과 같이 미리 정의한다.


ans 가장 최근의 계산값을 저장하고 있는 임시 변수
eps 두 수 사이의 최소 차이로 2-52≈2.2204ⅹ10-16.
예) 1.0에서 바로 다음 부동소수점까지의 거리
i, j 허수
Inf 무한히 큰 수(Infinity)
NaN Not-a-Number. 0/0과 같이 정의할 수 없는 값
pi π=3.1415926535897…
realmax, realmin, nargin, nargout 등

 i, j같은 변수는 응용 프로그램에 복소수가 포함되지 않는 경우 루프와 관련하여


다른 변수로 정의하기도 한다.

1장 매트랩 시작하기 36/38


MATLAB 변수
>> a=4; b=3; sum=a+b
sum = 7
>> a=7; sum
sum = 7 a의 값이 바뀌어도 Excel과 달리 sum의 값은 변동이 없다.

 명령이 길어서 한 줄에 입력할 수 없는 경우, 마침표(.) 세 개를 찍고 Enter 키를 눌러도


커서의 위치만 다음 줄로 바뀔 뿐 명령은 실행되지 않는다. 연산자는 분리할 수 있으나,
변수명은 분리해서 쓸 수 없다.

>> Class_1=20; Class_2=15; Class_3=14; Class_4=17; Total_Number=240;


>> ave = (Class_1 + Class_2 + Class_3 + Class_4) …
/ Total_Number * 100 반드시 공백이
ans = 27.5 들어가야 함
>> ave=(Class_1+Class_2+Class_3+Class_4)/Total_ …
??? ave=(Class_1+Class_2+Class_3+Class_4)/Total …
Error: The input character is not valid in MATLAB statements or expressions.

1장 매트랩 시작하기 37/38


MATLAB 연습

 MATLAB을 이용하여 다음 계산을 수행하라.


2 5
4 sin
(2)274
(2)
3
(1)
6
2 3 
(3)
5 5 46
3
120

1장 매트랩 시작하기 38/38

You might also like