Main Content

행렬과 배열

MATLAB은 "Matrix Laboratory"의 약어입니다. 다른 프로그래밍 언어에서는 대부분 수를 한 번에 하나씩 다루지만, MATLAB®은 행렬이나 배열 단위로 연산을 수행합니다.

MATLAB의 모든 변수는 데이터형에 관계없이 다차원 배열입니다. 행렬은 선형 대수에 주로 사용되는 2차원 배열입니다.

배열 생성

행 하나에 네 개의 요소가 포함된 배열을 만들려면 요소를 쉼표(,)나 공백으로 구분하십시오.

a = [1 2 3 4]
a = 1×4

     1     2     3     4

이 유형의 배열을 행 벡터라고 합니다.

행이 여러 개인 행렬을 만들려면 행을 세미콜론으로 구분하십시오.

a = [1 3 5; 2 4 6; 7 8 10]
a = 3×3

     1     3     5
     2     4     6
     7     8    10

행렬을 만드는 또 다른 방법은 ones, zeros, rand 같은 함수를 사용하는 것입니다. 예를 들어, 0으로 구성된 5×1 열 벡터를 만들어 보겠습니다.

z = zeros(5,1)
z = 5×1

     0
     0
     0
     0
     0

행렬 연산과 배열 연산

MATLAB에서는 단일 산술 연산자 또는 함수를 사용하여 행렬의 모든 값을 처리할 수 있습니다.

a + 10
ans = 3×3

    11    13    15
    12    14    16
    17    18    20

sin(a)
ans = 3×3

    0.8415    0.1411   -0.9589
    0.9093   -0.7568   -0.2794
    0.6570    0.9894   -0.5440

행렬을 전치하려면 작은따옴표(')를 사용하십시오.

a'
ans = 3×3

     1     2     7
     3     4     8
     5     6    10

* 연산자를 사용하면 행과 열 간의 내적을 계산하는 표준 행렬 곱셈을 수행할 수 있습니다. 예를 들어, 행렬에 역행렬을 곱하면 단위 행렬이 됨을 확인해 보겠습니다.

p = a*inv(a)
p = 3×3

    1.0000    0.0000   -0.0000
         0    1.0000   -0.0000
         0    0.0000    1.0000

여기서 p는 정수 값으로 구성된 행렬이 아닙니다. MATLAB에서는 수를 부동소수점 값으로 저장하는데, 산술 연산은 실제 값과 그 부동소수점 표현 간의 작은 차이에 민감합니다. format 명령을 사용하면 더 많은 소수점 자릿수를 표시할 수 있습니다.

format long
p = a*inv(a)
p = 3×3

   0.999999999999996   0.000000000000007  -0.000000000000002
                   0   1.000000000000000  -0.000000000000003
                   0   0.000000000000014   0.999999999999995

다음을 사용하여 화면의 표시 내용을 짧은 표기 형식으로 재설정합니다.

format short

format은 숫자의 표시에만 영향을 미치며 MATLAB에서 수를 계산하거나 저장하는 데에는 영향을 주지 않습니다.

행렬 곱셈이 아닌 요소별 곱셈을 수행하려면 .* 연산자를 사용하십시오.

p = a.*a
p = 3×3

     1     9    25
     4    16    36
    49    64   100

곱셈, 나눗셈, 거듭제곱에 사용되는 각 행렬 연산자에는 요소별로 연산을 수행하는 배열 연산자가 하나씩 있습니다. 예를 들어, a의 각 요소를 세제곱해 보겠습니다.

a.^3
ans = 3×3

           1          27         125
           8          64         216
         343         512        1000

결합

결합(Concatenate)은 배열을 결합하여 더 큰 배열을 만드는 과정입니다. 실제로 위에서 첫 번째 배열을 만들 때 해당 개별 요소들을 결합(Concatenate)했습니다. 대괄호 쌍([])은 결합 연산자입니다.

A = [a,a]
A = 3×6

     1     3     5     1     3     5
     2     4     6     2     4     6
     7     8    10     7     8    10

쉼표를 사용하여 나란히 인접한 배열을 서로 결합하는 것을 가로 결합이라고 합니다. 각 배열의 행 개수는 동일해야 합니다. 마찬가지로, 배열의 열 개수가 동일한 경우 세미콜론을 사용하여 배열을 세로로 결합할 수 있습니다.

A = [a; a]
A = 6×3

     1     3     5
     2     4     6
     7     8    10
     1     3     5
     2     4     6
     7     8    10

복소수

복소수에는 실수부와 허수부가 모두 있는데, 이 경우 허수 단위는 -1의 제곱근입니다.

sqrt(-1)
ans = 0.0000 + 1.0000i

복소수의 허수부를 표현하려면 i 또는 j를 사용하십시오.

c = [3+4i, 4+3j; -i, 10j]
c = 2×2 complex

   3.0000 + 4.0000i   4.0000 + 3.0000i
   0.0000 - 1.0000i   0.0000 +10.0000i