행렬과 스칼라 간의 사칙 연산에서는 일반적인 프로그래밍과 마찬가지로 +, -, *, /를 사용한다.

    > x <- matrix(c(1, 2, 3, 4, 5, 6, 7, 8, 9), nrow=3)
    > x * 2
         [,1] [,2] [,3]
    [1,]    2    8   14
    [2,]    4   10   16
    [3,]    6   12   18
    > x / 2
         [,1] [,2] [,3]
    [1,]  0.5  2.0  3.5
    [2,]  1.0  2.5  4.0
    [3,]  1.5  3.0  4.5
    

    행렬 간의 덧셈과 뺄셈에는 +와 -를 사용한다.

    > x <- matrix(c(1, 2, 3, 4, 5, 6, 7, 8, 9), nrow=3)
    > x + x
         [,1] [,2] [,3]
    [1,]    2    8   14
    [2,]    4   10   16
    [3,]    6   12   18
    > x - x
        [,1] [,2] [,3]
    [1,]   0    0    0
    [2,]   0    0    0
    [3,]   0    0    0
    

    행렬 곱에는 %*%를 사용한다.

    > x <- matrix(c(1, 2, 3, 4, 5, 6, 7, 8, 9), nrow=3)
    > x
         [,1] [,2] [,3]
    [1,]    1    4    7
    [2,]    2    5    8
    [3,]    3    6    9
    > x %*% x
         [,1] [,2] [,3]
    [1,]   30   66  102
    [2,]   36   81  126
    [3,]   42   96  150
    

    전치행렬은 t( )로 구한다.

    > (x <- matrix(c(1, 2, 3, 4, 5, 6, 7, 8, 9), nrow=3))
         [,1] [,2] [,3]
    [1,]    1    4    7
    [2,]    2    5    8
    [3,]    3    6    9
    > t(x)
         [,1] [,2] [,3]
    [1,]    1    2    3
    [2,]    4    5    6
    [3,]    7    8    9
    

    역행렬은 solve( )로 계산한다. 다음은 행렬 x의 역행렬을 구한 뒤 x와 곱해 그 결과가 단위행렬Identity Matrix이 되는지 확인하는 예다.

    > (x <- matrix(c(1, 2, 3, 4), ncol=2))
         [,1] [,2]
    [1,]    1    3
    [2,]    2    4
    > solve(x)
         [,1] [,2]
    [1,]   -2  1.5
    [2,]    1 -0.5
    > x %*% solve(x)
         [,1] [,2]
    [1,]    1    0
    [2,]    0    1
    

    행렬의 차원은 nrow( ), ncol( )로 알 수 있으며, 각각 행의 수와 열의 수를 반환한다.

    > (x <- matrix(c(1, 2, 3, 4, 5, 6), ncol=3))
         [,1] [,2] [,3]
    [1,]    1    3    5
    [2,]    2    4    6
    > nrow(x)
    [1] 2
    > ncol(x)
    [1] 3
    

    dim( )은 행렬뿐만 아니라 다양한 데이터 타입(예를 들면, 다음 절에서 설명하는 배열)에 적용 가능한 일반(범용) 함수Generic Function로, 데이터의 차원을 벡터로 반환한다. dim( )의 반환 값에 새로운 차원을 지정하면 데이터의 차원을 변경할 수 있다는 점이 특이하다. 다음은 2×3 차원의 행렬을 생성한 뒤 3×2 차원으로 바꾼 예다.

    > x <- matrix(c(1, 2, 3, 4, 5, 6), ncol=3)
    > dim(x)
    [1] 2 3
    > x
         [,1] [,2] [,3]
    [1,]    1    3    5
    [2,]    2    4    6
    > dim(x) <- c(3, 2)
    > x
         [,1] [,2]
    [1,]    1    4
    [2,]    2    5
    [3,]    3    6
    
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.