옥타브 / 매트랩


¿ÁŸºê´Â ¸ÅÆ®·¦°ú ȣȯµÇ´Â ÇÁ¸®¿þ¾îÀÌ´Ù.

ÇöÀç (2017³â) ¹öÀü 4.0.3 ÀÌ ¹èÆ÷µÇ°í ÀÖÀ¸¸ç, ¾Æ·¡ À¥ÆäÀÌÁö¿¡¼­ ´Ù¿î·Îµå ¹ÞÀ» ¼ö ÀÖ´Ù.

$\quad$ ¿ÁŸºê À¥ÆäÀÌÁö

À©µµ¿ìÁî 7 ½Ã½ºÅÛ¿¡ ¼³Ä¡ÇÑ ¿ÁŸºêÀÇ GUI ¸ð½ÀÀ¸·Î, ¸ÅÆ®·¦°ú Èí»çÇÏ´Ù.

¸í·ÉâÀÇ Ä¿¼­ ´ÙÀ½¿¡

$\quad >> \,\,$ ¸í·É¾î

¸¦ ÇÑ ÁÙ¾¿ ÀÔ·ÂÇϸé, °á°ú¸¦ ¹Ù·Î È®ÀÎÇÒ ¼ö ÀÖ´Â ½ºÅ©¸³Æ® ¹æ½ÄÀ» Áö¿øÇÑ´Ù.

title

¶ÇÇÑ, GUI ¾Æ·¡ÀÇ ¿¡µðÅÍ ÅÇÀ» Ŭ¸¯ÇÏ¿© ¿¡µðÅÍ Ã¢À» ¿­¾î¼­ ½ºÅ©¸³Æ® ÆÄÀÏ ( .m ÆÄÀÏ)À» ¸¸µé¾î ÀúÀåÇÒ ¼ö ÀÖ´Ù.

퀵 가이드


°è»ê±âó·³ °£ÆíÈ÷ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

In [1]:
5^2
ans =  25
In [2]:
cos(pi)
ans = -1

fplot( ) À» »ç¿ëÇÏ¿©, »çÀÎ ÇÔ¼ö¸¦ ±×·Áº¸ÀÚ.

In [3]:
fplot( 'sin(x)', [-pi,pi] )

´ÙÀ½ ¹æÁ¤½ÄÀÇ ¼öÄ¡ÇØ¸¦ ±¸ÇÑ´Ù. $$ e ^{-x} = x $$

Áº¯°ú ¿ìº¯ÀÇ ÇÔ¼ö¸¦ ±×·¡ÇÁ¿¡ ±×·Áº¸ÀÚ. ¿©·¯°³ÀÇ ÇÔ¼öµéÀ» °°ÀÌ ±×¸®·Á¸é [ ] ·Î ¹­¾îÁØ´Ù.

In [4]:
fplot( '[ exp(-x), x ]', [-2,2] )

µÎ ÇÔ¼ö°¡ ¼­·Î ±³Â÷ÇϹǷÎ, ±³Á¡¿¡¼­ ÇØ°¡ Á¸ÀçÇÔÀ» ¾Ë ¼ö ÀÖ´Ù.

¼öÄ¡ÇØ¸¦ ±¸ÇÏ·Á¸é, ¹æÁ¤½ÄÀÇ ¿ìº¯ÀÌ $0$ ÀÎ ÇüÅ·Π¸¸µç´Ù.

$ f(x) = e ^{-x} - x = 0 $

$f(x)$¸¦ ÇÔ¼öÇÚµé·Î ¼±¾ðÇϰí, fzero( ) ÇÔ¼öÀÇ Ã¹ ¹øÂ° ÀÎÀÚ·Î ³Ö´Â´Ù.

µÎ ¹øÂ° ÀÎÀÚ¿¡ ÇØÀÇ ÃʱⰪÀ» ³Ö¾îÁØ´Ù. (ÃʱⰪÀ¸·Î $0$ À» »ç¿ëÇÔ)

In [5]:
f =@(x) exp(-x) - x ;
fzero( f, 0 )
ans =  0.56714

´ÙÀ½ ¿¬¸³¹æÁ¤½ÄÀ» Ǭ´Ù.

$$x+2y+3z=7$$$$3x-2y+ z=5$$$$2x-3y+z=2$$
In [6]:
A = [1 2 3; 3 -2 1; 2 -3 1]
A =

   1   2   3
   3  -2   1
   2  -3   1

In [7]:
B = [7; 5; 2]
B =

   7
   5
   2

°¡¿ì½º ¼Ò°Å¹ýÀ¸·Î ÇØ¸¦ ±¸ÇÑ´Ù.

In [8]:
X = A \ B
X =

   2.00000
   1.00000
   1.00000


기초 문법

ÄÚµåÀÇ ÇÑ ÁÙÀÌ ¼öÇàµÉ ¶§¸¶´Ù ±× °á°ú°¡ Ãâ·ÂµÈ´Ù.

In [9]:
x = [ 1 2 3 4 ]
y = 2 * x
x =

   1   2   3   4

y =

   2   4   6   8

Ãâ·ÂÀ» ¿øÇÏÁö ¾Ê°Å³ª ¹æÁöÇÏ·Á¸é, ÁÙÀÇ ³¡¿¡ ¼¼¹ÌÄÝ·ÐÀ» ºÙÀδÙ.

In [10]:
x = [ 1 2 3 4 ];
y = 2 * x
y =

   2   4   6   8

% ±âÈ£¸¦ ºÙÀÌ¸é ±× ´ÙÀ½¿¡ ¾²´Â ³»¿ëÀº ¸ðµÎ ¼³¸í¹®ÀÌ µÈ´Ù.

In [38]:
% ÀÌÈÄÀÇ ÁÙ ³¡±îÁö ¾´ ³»¿ëÀº ¸ðµÎ ¼³¸í¹®ÀÌ´Ù.
% ¼³¸í¹®À» ÀÚ¼¼È÷ ¾²´Â ½À°üÀ» ±â¸£´Â °ÍÀÌ ÁÁ´Ù.
% ±×·¸Áö ¾ÊÀ¸¸é, ³ªÁß¿¡ ÀڱⰡ ¸¸µç Äڵ带 ÀÌÇØÇÏÁö ¸øÇÏ°Ô µÈ´Ù.
printf( "¾Æ½Ã°ÚÁÒ?" )
¾Æ½Ã°ÚÁÒ?
¾Æ½Ã°ÚÁÒ?

µÎ ¹è¿­ µ¥ÀÌÅ͸¦ ±×·¡ÇÁ·Î ±×¸°´Ù.

In [11]:
plot( x, y )

Ç຤ÅÍÀÇ ¿ø¼Ò´Â °ø¹é ¶Ç´Â ½°Ç¥ , ·Î ºÐ¸®ÇÑ´Ù.

In [12]:
x = [ 1, 2, 3, 4 ]
x =

   1   2   3   4

¿­º¤ÅÍ´Â ¼¼¹ÌÄÝ·Ð ; À¸·Î ÇàÀ» ±¸ºÐÇÑ´Ù.

In [13]:
y = [ 1; 2; 3 ]
y =

   1
   2
   3

행렬을 입력하는 방법

¼¼¹ÌÄÝ·Ð ¶Ç´Â Áٹٲٱâ·Î ÇàÀ» ±¸ºÐÇÑ´Ù.

In [14]:
a = [ 1 2 3; 4 5 6 ]
a =

   1   2   3
   4   5   6

In [15]:
a = [ 1 2 3
      4 5 6 ]
a =

   1   2   3
   4   5   6

¿ø¼Ò°ªÀÌ ¼øÂ÷ÀûÀ¸·Î Áõ°¡ÇÏ´Â ¹è¿­ ¸¸µé±â

ÃʱⰪ : ÃÖÁ¾°ª

In [17]:
x = 1:5
x =

   1   2   3   4   5

[ ] ¾È¿¡ ³Ö¾îÁÙ ¼öµµ ÀÖ´Ù.

In [18]:
x = [ 1:5 ]
x =

   1   2   3   4   5

Áõ°¡°ªÀÌ 1 ÀÌ ¾Æ´Ñ °æ¿ì´Â, ±× °ªÀ» °¡¿îµ¥¿¡ ½áÁØ´Ù.

ÃʱⰪ : Áõ°¡°ª : ÃÖÁ¾°ª

In [20]:
x = 1:2:5
x =

   1   3   5

linspace( ) ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿©, ±¸°£À» ÀÏÁ¤ÇÑ °£°ÝÀ¸·Î ³ª´©´Â ¹è¿­À» »ý¼ºÇÒ ¼ö ÀÖ´Ù.

linspace( ÃʱⰪ, ÃÖÁ¾°ª, ¿ø¼ÒµéÀÇ °¹¼ö )

In [24]:
x = linspace( 0, 1, 6 )
x =

   0.00000   0.20000   0.40000   0.60000   0.80000   1.00000

배열과 숫자의 덧셈

¹è¿­¿¡ ¼ýÀÚ¸¦ ´õÇÏ´Â °ÍÀº, ¹è¿­ÀÇ °¢ ¿ø¼Ò¿¡ ±× ¼ýÀÚ¸¦ ´õÇÏ´Â °ÍÀÌ´Ù.

º¤ÅÍÀÇ ¼öÇп¡¼­´Â Çã¿ëµÇÁö ¾Ê´Â ¿¬»êÀÌ´Ù.

In [31]:
a = [ 1 2 3 ] ;

a + 5
ans =

   6   7   8

배열과 숫자의 곱셈

¹è¿­¿¡ ¼ýÀÚ¸¦ °öÇÏ´Â °ÍÀº, ¹è¿­ÀÇ °¢ ¿ø¼Ò¿¡ ±× ¼ýÀÚ¸¦ °öÇÏ´Â °ÍÀÌ´Ù.

º¤ÅÍÀÇ ¼öÇп¡¼­ Çã¿ëµÇ´Â ¿¬»êÀÌ´Ù.

In [32]:
a = [ 1 2 3 ] ;

a * 2
ans =

   2   4   6

배열의 닷곱셈

Å©±â°¡ °°Àº µÎ ¹è¿­ÀÇ °°Àº À§Ä¡¿¡ ÀÖ´Â ¿ø¼Ò³¢¸® °öÇÏ´Â ¿¬»êÀÌ´Ù.

¼öÇÐÀûÀÎ Çà·Ä °ö¼À°ú´Â ´Ù¸£´Ù.

In [25]:
a = [ 1 2 3 ]
a =

   1   2   3

In [28]:
b = [ 10 20 30 ]
b =

   10   20   30

´å°ö¼ÀÀ» ÇÏ´Â µÎ ¹è¿­Àº Å©±â°¡ °°¾Æ¾ß ÇÑ´Ù.

In [29]:
a .* b
ans =

   10   40   90

배열 연산

´å°ö¼À ¿¬»ê°ú ºñ½ÁÇϰÔ, µÎ ¹è¿­ÀÇ °°Àº À§Ä¡¿¡ ÀÖ´Â ¿ø¼Òµé »çÀÌÀÇ ¿¬»êÀ» ¹è¿­ ¿¬»êÀ̶ó ÇÑ´Ù.

¿©·¯°¡Áö ¹è¿­ ¿¬»ê¿¡ ÇØ´çÇÏ´Â ¿¬»êÀÚ ±âÈ£¸¦ ³ªÅ¸³»¾ú´Ù.

  • ´å°ö¼À $\quad .* $

  • ´å³ª´°¼À $\quad ./ $

  • ´å°ÅµìÁ¦°ö $\quad . $ ^

전치 (transpose)

¹è¿­ (Çà¿­)ÀÇ Çà°ú ¿­À» ¼­·Î ¹Ù²Ù´Â ¿¬»êÀ» ÀüÄ¡ ¿¬»êÀ̶óÇÑ´Ù.

ÀüÄ¡ ¿¬»êÀÚ´Â ÀÛÀº µû¿ÈÇ¥ ' ÀÌ´Ù.

In [33]:
a = [ 1 2 3; 4 5 6 ]
a =

   1   2   3
   4   5   6

In [34]:
a'
ans =

   1   4
   2   5
   3   6

내장 함수

ÇÔ¼öÀÇ ÀÔ·Â ÀÎÀÚ´Â ½ºÄ®¶ó¸¦ ³Ö¾îµµ µÇ°í, º¤Å͸¦ ³Ö¾îµµ µÈ´Ù.

In [39]:
x = 4
sqrt( x )
x =  4
ans =  2
In [40]:
x = [ 9, 16, 25 ]
sqrt( x )
x =

    9   16   25

ans =

   3   4   5

help ¸í·ÉÀ¸·Î µµ¿ò¸» ±â´ÉÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù.

In [41]:
help sqrt
'sqrt' is a built-in function from the file libinterp/corefcn/mappers.cc

 -- Mapping Function: sqrt (X)
     Compute the square root of each element of X.

     If X is negative, a complex result is returned.

     To compute the matrix square root, see *note Linear Algebra::.

     See also: realsqrt, nthroot.

Additional help for built-in functions and operators is
available in the online version of the manual.  Use the command
'doc <topic>' to search the manual index.

Help and information about Octave is also available on the WWW
at http://www.octave.org and via the help@octave.org
mailing list.

기본 수학 함수

ÇÔ¼ö ¹Ýȯ°ª
abs(x) Àý´ë°ª
exp(x) Áö¼öÇÔ¼ö
log(x) ÀÚ¿¬·Î±× (¹ØÀÌ e)
log10(x) »ó¿ë·Î±× (¹ØÀÌ 10)
sign(x) x>0 À̸é 1, x=0 À̸é 0, x< 0 À̸é -1

근사 함수

ÇÔ¼ö ¹Ýȯ°ª
round(x) x¿¡ °¡Àå °¡±î¿î Á¤¼ö
ceil(x) ¡Ä ¹æÇâÀ¸·Î x¿¡ °¡Àå °¡±î¿î Á¤¼ö
floor(x) -¡Ä ¹æÇâÀ¸·Î x¿¡ °¡Àå °¡±î¿î Á¤¼ö
fix(x) 0 ¹æÇâÀ¸·Î x¿¡ °¡Àå °¡±î¿î Á¤¼ö

round( ) ´Â ¹Ý¿Ã¸²/¹Ý³»¸²ÇÑ Á¤¼ö¸¦ ¹ÝȯÇÑ´Ù.

In [65]:
round(-0.6)
ans = -1
In [46]:
ceil(1.2)
ans =  2
In [48]:
floor(1.2)
ans =  1
In [47]:
ceil(-1.2)
ans = -1
In [49]:
floor(-1.2)
ans = -2
In [50]:
fix(-1.2)
ans = -1

이산수학 함수

ÇÔ¼ö ¹Ýȯ°ª
factor(x) xÀÇ ¼ÒÀμö
gcd(x,y) x ¿Í yÀÇ ÃÖ´ë°ø¾à¼ö
lcm(x,y) x ¿Í yÀÇ ÃÖ¼Ò°ø¹è¼ö
rats(x) x ¸¦ ºÐ¼ö·Î Ç¥½Ã
factorial(x) x! = x (x-1) (x-2) ¡¤¡¤¡¤ 1
nchoosek(n,k) $_n$C$_k$ = n! / k! / (n-k)!
primes(x) xº¸´Ù ÀÛÀº ¼Ò¼ö
isprime(x) x°¡ ¼Ò¼öÀ̸é 1, ¼Ò¼ö°¡ ¾Æ´Ï¸é 0

삼각 함수

ÇÔ¼ö ¹Ýȯ°ª
sin(x) sine
cos(x) cosine
tan(x) tangent
asin(x) inverse sine
sinh(x) hyperbolic sine
asinh(x) inverse hyperbolic sine
sind(x) sine (ÀÔ·ÂÀÌ degree ´ÜÀ§)
asind(x) inverse sine (Ãâ·ÂÀÌ degree ´ÜÀ§)

데이터 분석 함수

ÇÔ¼ö ¹Ýȯ°ª
max(x) xÀÇ (°¢ ¿­ÀÇ) ÃÖ´ë°ª
min(x) xÀÇ (°¢ ¿­ÀÇ) ÃÖ¼Ò°ª
mean(x) xÀÇ (°¢ ¿­ÀÇ) Æò±Õ°ª
median(x) xÀÇ (°¢ ¿­ÀÇ) Áß¾Ó°ª
sum(x) xÀÇ (°¢ ¿­ÀÇ) ¿ø¼ÒµéÀÇ ÇÕ
prod(x) xÀÇ (°¢ ¿­ÀÇ) ¿ø¼ÒµéÀÇ °ö
sort(x) xÀÇ (°¢ ¿­ÀÇ) ¿ø¼ÒµéÀ» ¿À¸§Â÷¼ø Á¤·Ä
In [51]:
x = [ 1 5 3 ] ;
max( x )
ans =  5

x°¡ Çà·ÄÀÌ¸é °¢ ¿­ÀÇ ÃÖ´ë°ªÀ» ±¸ÇÑ´Ù.

In [52]:
x = [ 1 5 3; 2 4 6 ] 
max( x )
x =

   1   5   3
   2   4   6

ans =

   2   5   6

¹Ýȯ°ªÀÌ µÎ °³ÀÎ °æ¿ì¿¡´Â [ ÃÖ´ë°ª, ÃÖ´ë°ªÀÇ À§Ä¡ ] °¡ ¹ÝȯµÈ´Ù.

In [53]:
x = [ 1 5 3 ] ;
[ a, b ] = max( x )
a =  5
b =  2

행렬의 크기를 구하는 함수

ÇÔ¼ö ¹Ýȯ°ª
size(x) ÇàÀÇ °¹¼ö¿Í ¿­ÀÇ °¹¼ö
length(x) ÇàÀÇ °¹¼ö¿Í ¿­ÀÇ °¹¼ö Áß¿¡¼­ Å« °ª
In [54]:
x = [ 1 5 3; 2 4 6 ]
x =

   1   5   3
   2   4   6

In [55]:
size( x )
ans =

   2   3

In [56]:
length( x )
ans =  3

복소수에 관한 함수

ÇÔ¼ö ¹Ýȯ°ª
complex(x,y) x + y * i
real(A) º¹¼Ò¼ö A ÀÇ ½Ç¼öºÎ
imag(A) º¹¼Ò¼ö A ÀÇ Çã¼öºÎ
isreal(A) ½Ç¼öÀ̸é 1, º¹¼Ò¼öÀ̸é 0
conj(A) º¹¼Ò¼ö A ÀÇ ÄÓ·¹º¹¼Ò¼ö
abs(A) º¹¼Ò¼ö A ÀÇ Å©±â
angle(A) º¹¼Ò¼ö A ÀÇ °¢ (radian)

Çã¼ö ´ÜÀ§·Î i ¶Ç´Â j ¸¦ ¾µ ¼ö ÀÖ´Ù.

In [61]:
i^2
j^2
ans = -1
ans = -1

¸ÅÆ®·¦ÀÌ Ã³¸®ÇÒ ¼ö ÀÖ´Â °¡Àå Å« ¼ö´Â $ 10 ^{308}$ À̰í,

°¡Àå ÀÛÀº ¼ö´Â $ 10 ^{-308}$ ÀÌ´Ù.

In [58]:
realmax 
realmin
ans =   1.7977e+308
ans =   2.2251e-308

¸ÅÆ®·¦ÀÌ Ã³¸®ÇÒ ¼ö ÀÖ´Â Á¤¼öÀÇ ¹üÀ§´Â ´ë·« -20¾ï¿¡¼­ +20¾ïÀÌ´Ù.

In [60]:
intmax
intmin
ans = 2147483647
ans = -2147483648

¾î¶² ¼ö¸¦ 0 À¸·Î ³ª´©¸é Inf °¡ Ãâ·ÂµÈ´Ù.

In [57]:
1 / 0
warning: division by zero
ans = Inf

¸Å¿ì ÀÛÀº ¼ö¸¦ ³ªÅ¸³»´Â eps ´Â ¾à $10^{-16}$ ÀÌ´Ù.

In [62]:
eps
ans =   2.2204e-016

clock ´Â ÇöÀç ³¯Â¥¿Í ½Ã°¢À» ¹è¿­·Î ³ªÅ¸³»°í,

date ´Â ÇöÀç ³¯Â¥¸¦ ¹®ÀÚ¿­·Î ³ªÅ¸³½´Ù.

In [64]:
clock
date
ans =

   2017.0000      5.0000     28.0000     18.0000     31.0000     50.8977

ans = 28-May-2017

행렬 다루기

À妽º ¹øÈ£¸¦ »ç¿ëÇÏ¿© Çà·ÄÀÇ ¿ø¼Ò¸¦ º¯°æÇϰųª Ãß°¡ÇÒ ¼ö ÀÖ´Ù.

In [66]:
S = [ 3 1.5 3.1 ]
S =

   3.0000   1.5000   3.1000

µÎ ¹øÂ° ¿ø¼Ò¸¦ º¯°æÇÑ´Ù.

In [67]:
S(2) = 1.0
S =

   3.0000   1.0000   3.1000

»õ ¿ø¼Ò¸¦ ¸Ç ³¡¿¡ Ãß°¡ÇÑ´Ù.

In [68]:
S( length(S)+1 ) = 5.5
S =

   3.0000   1.0000   3.1000   5.5000

행렬의 특정 원소를 가리키는 방법

Çà°ú ¿­À» ³ªÅ¸³»´Â µÎ °³ÀÇ À妽º ¹øÈ£¸¦ »ç¿ëÇÏ¿©, ƯÁ¤ÇÑ ¿ø¼Ò¸¦ °¡¸®Å²´Ù.

In [69]:
M = [ 1 2 3 4 5
      2 3 4 5 6
      3 4 5 6 7 ];

M(3,5)
ans =  7

~ to be continued ~