Matlab 기초

위키배움터
이동: 둘러보기, 검색
자료 정보
Face-smile-big.svg 진행 상황: 이 자료는 완성되었거나 거의 완성 단계에 있습니다.
Sciences humaines.svg 교육 수준: 이 자료는 대학교 강의 수준의 자료입니다.
Crystal exec.png 과목 정보: 이 자료는 공학 과목의 자료입니다.
Nuvola apps edu miscellaneous.svg 자료 형식: 이 자료는 강의형식의 자료입니다.

Matlab수치해석에서 사용하는 수학 소프트웨어입니다. 여기서는 기본적인 Matlab 사용법과 예제들에 대해서 다루겠습니다.

기본 사항[편집]

Matlab에 입력하는 값들은 행렬에 저장됩니다. 예를 들어 a=1 즉 a라는 변수에 1이라는 숫자를 집어 넣어도 1X1 크기의 행렬에 1이라는 숫자가 저장됩니다.

Matlab을 켰을 때 나오는 창에서 오른 편에 있는 Command Window가 주로 사용하게 될 창입니다. 키보드에서 어떤 값을 입력하면 Command Window에 있는 >> 기호 옆에 알맞는 기호나 숫자가 작성됩니다. 엔터를 누르면 >> 줄에 작성한 명령이 실행됩니다.

이전에 작성한 명령을 다시 실행하려면 키보드의 화살표키(↑)를 이용해 해당 명령을 찾은 후, 엔터 키를 눌러주면 됩니다.

변수 입력하기[편집]

변수에 값을 저장할 때, 엔터키를 눌렀을 때 저장된 변수가 다시 표시됩니다. 만약 변수에 값은 저장하지만, 엔터키를 눌러도 반복해서 표시되길 원하지 않는다면 식을 입력한 뒤 끝에 세미콜론(;)을 붙이면 됩니다. 예를 들어서 >> a=1 하고 엔터를 치면 a = 1 이라고 다시 출력이 되게 되는데, >> a=1; 하고 엔터를 친다면, 다음 줄엔 아무것도 표시되지 않고 >> 만 나옵니다.

>> a=1
a =  1
>> a=1;
>>

여러 변수를 여러 줄에 걸쳐 입력할 필요는 없습니다. 한 줄에 여러 변수를 입력하려면 콤마(,)나 세미콜론(;)으로 구분해주면 됩니다.

>> a=1, b=2, c=3;
a =  1
b =  2

여기서는 c=3뒤에만 유일하게 ; 이 있기 때문에 c=3만 출력되지 않았습니다. 출력되지 않는다고 값이 입력되지 않은 건 아닙니다. 이 상태에서 다시 c에 들어있는 값을 알아보기 위해 >> c를 해보면 알 수 있습니다.

>> c
c =  3

변수 이름 지정[편집]

변수 이름은 반드시 문자로 시작해야 하고, 문자, 숫자, 밑줄글자(_)만 포함할 수 있습니다. 소문자와 대문자는 Matlab이 다르게 인식하므로 주의해야 합니다. 내장함수 이름을 변수에 사용하면 안 됩니다.

참고) 하나의 명령어 줄에서 % 이후의 내용은 주석처리 되는 것으로, Matlab이 처리하지 않는 부분입니다. 편의 상 설명을 집어 넣을 때 사용합니다.

예시

>> a_2=23 %available
a_2 =  23
>> a 3=23 %non available
error: 'a' undefined near line 1 column 1
>> a.3=23 %non available
parse error:

  syntax error

>>> a.3=23 %non available
      ^

>> Matlab=23 %Capital letter
Matlab =  23
>> matlab=555 %non capital letter
matlab =  555
>> matlab-Matlab % is not zero. 'Matlab' is different from 'matlab'
ans =  532


>> matlab@2=999 %non available because of @
parse error:

  syntax error

>>> matlab@2=999
          ^

미리 정의된 변수[편집]

Matlab 변수 출력 비고
pi >> format long
>> pi
ans = 3.14159265358979
e % GNU Octave에서

>> format long
>> e
ans = 2.71828182845905

% Matlab에서

Matlab e.png
자연 상수 e. GNU Octave에선 꼭 exp(x)를 사용할 필요 없음.
Matlab에서는 e가 변수로 사용되므로 자연상수 e를 나타내기 위해서는 exp(1)을 사용해야 한다.
eps >> format long e
>> eps
ans = 2.22044604925031e-016
두 수 사이의 최소 차이
inf >> inf
ans = Inf
>> Inf
ans = Inf
무한대
i >> format short
>> i
ans = 0 + 1i
허수 단위 i
j >> j
ans = 0 + 1i
허수 단위 i와 동일
NaN >> NaN
ans = NaN
Not a number. 수가 아님

숫자 출력 형식[편집]

숫자 출력 형식은 크게 중요하진 않으므로 참고만 하면 됩니다.

명령어 설명 예시
format short 고정 소수점, 다섯 개의 유효숫자로 표시[1]
대략 0.001<수<1000000000 (109) 이외의 범위는 short e 형식으로 표시
>> format short
>> pi
ans = 3.1416

>> 23.1416
ans = 23.142

>> 949.654684984
ans = 949.65

>> eps
ans = 2.2204e-016

>> 0.0009
ans = 9.0000e-004

>> 1000000000-1

ans = 999999999

>> 1000000000
ans = 1.0000e+009

>> 1000000000+1
ans = 1.0000e+009

format long 고정 소수점, 열 다섯 개의 유효숫자로 표시[1] >> format long

>> pi
ans = 3.14159265358979

>> 23.1416
ans = 23.1416000000000

>> 949.654684984
ans = 949.654684984000

>> eps
ans = 2.22044604925031e-016

>> 0.0009
ans = 9.00000000000000e-004

format short e 유효숫자 다섯 개의 과학적 표기법으로 표시[1] >> format short e
>> pi


ans = 3.1416e+000

format long e 유효숫자 열 다섯 개의 과학적 표기법으로 표시[1] >> format long e

>> exp(1)
ans = 2.71828182845905e+000

format short g 유효숫자 다섯 개로, 고정소수점 표시와 부동 소수점 표시 중 보기 편한 방법으로 출력
format long g 유효숫자 열 다섯 개로, 고정소수점 표시와 부동 소수점 표시 중 보기 편한 방법으로 출력
format bank 소수점 이하 두자리까지 표시 >> format bank

>> 290/3
ans = 96.67

format compact 화면에서 빈 줄을 없애서 많은 정보가 표시되게 하기 >> format short e

>> pi
ans = 3.1416e+000
>> format long e
>> exp(1)
ans = 2.71828182845905e+000
>> format bank
>> 290/3
ans = 96.67
>>

format loose 화면에서 빈 줄을 삽입해서 좀더 보기 쉽게 하기

사칙 연산[편집]

사칙 연산은 기본적으로 +, -, *, / 기호를 사용합니다. 지수를 쓸 때는 ^ 를 사용합니다. 보통 계산기에서 하는 사칙 연산의 경우(즉 1X1 크기 이상의 행렬을 이용해 계산하는 것이 아닌, 단순히 숫자끼리 사칙연산을 진행하는 경우)는 일반적인 계산기를 사용하듯 계산을 하면 됩니다.

한 가지 주의점은 계산 순서와 괄호의 사용에 신경써야 한다는 것입니다.

계산 우선 순위[편집]

  1. 괄호
  2. 거듭제곱
  3. 곱셈, 나눗셈
  4. 덧셈, 뺄셈

예제 1) 을 Matlab에서 입력하려면 어떻게 해야할까?

>> 1+2/3 은 다른 결과가 나온다. 이는 으로 계산된다. 덧셈보다 나눗셈의 우선 순위가 높기 때문이다.

옳게 계산하기 위해서는 >> (1+2)/3으로 계산해 주어야 한다.

예제 2) >> 1/2*3 의 입력 결과는 일까?

아니다. 나눗셈과 곱셈의 우선 순위는 같으므로 앞에 있는 것부터 계산된다. 따라서 으로 계산되고, 결과는 1.5000이 나온다.

>> 1/(2*3)을 해주어야 이 나온다.

예제 3) >> 27^1/3의 결과는 3인가?

아니다. >> 27^1/3은 이므로 9이다. 결과가 3이기 위해선 >> 27^(1/3) 과 같이 괄호로 어느 부분이 지수인지 확실히 해주어야 한다.

내장 수학 함수[편집]

Matlab 함수 일반 수식 표현
sqrt(x)
nthroot(x, n)
exp(x)
abs(x) |x|
log(x) ln x
log10(x)
factorial(x) x!
sin(x)
cos(x)
tan(x)
cot(x)
(x는 라디안(radian))
sin x
cos x
tan x
cot x
sind(x)
cosd(x)
tand(x)
cotd(x)
(x는 도(degree))
sin x
cos x
tan x
cot x

주의) 는 Matlab에서 sin^2(x)가 아니라 (sin(x))^2으로 해주어야 한다.

>> sin^2(pi)
error: Invalid call to sin.
>> (sin(pi))^2
ans =   1.4997e-032

내장 어림 함수[편집]

Matlab 함수 설명 비고
round(x) 반올림
fix(x) 소수점 이하 버림 >> 13/5
ans = 2.6000
>> fix(13/5)
ans = 2
ceil(x) 소수점 이하 올림 >> 11/5
ans = 2.2000
>> fix(11/5)
ans = 2
floor(x) x보다 작은 정수 중 최댓값 >> floor(3/2)
ans = 1
>> floor(-3/2)
ans = -2
rem(x,y) x/y의 나머지(remainder) >> rem(8,7)
ans = 1
sign(x) x가 양수면 1
x가 음수면 0
>> sign(-pi)
ans = -1
>> sign(pi)
ans = 1

응용 예제[편집]

일 때, 가 성립하는지 Matlab을 통해 확인해보자.

(풀이)

>> x=pi/5;
>> a=sin(x);
>> b=sqrt(1-(cos(x))^2);
>> a-b
ans =   0.0000e+000

더 보기[편집]

각주[편집]

  1. 1.0 1.1 1.2 1.3 GNU Octave의 help format 명령어를 사용해서 나온 도움말을 참고

참고한 글, 강의[편집]