본문 바로가기
5. 자료구조/2) 행렬 | matrix()

[R코딩] 행렬의 곱 (%*%)

by makhimh 2020. 12. 21.
반응형

R에서 행렬의 곱을 수행하는 함수는 %*% 입니다. 

 

행렬을 하나 정의합시다. 

 

> m1=matrix(1:4,2)
> m1
     [,1] [,2]
[1,]    1    3
[2,]    2    4

 

m1과 m1을 곱하는 행렬의 곱을 해봅시다. 

 

> m1%*%m1
     [,1] [,2]
[1,]    7   15
[2,]   10   22

 

행렬과 행렬을 곱할 때는, 앞 행렬의 열의 수와 뒤 행렬의 행의 수가 같아야 합니다. 

 

두 행렬을 정의합시다. m2 는 2행3열, m3는 3행3열의 행렬입니다. 

 

> m2=matrix(1:6,2)
> m2
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6
> m3=matrix(1:9,3)
> m3
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9

 

m2의 열의 수와 m3의 행의 수가 같으므로 행렬의 곱이 아래와 같이 가능합니다. 

 

> m2%*%m3
     [,1] [,2] [,3]
[1,]   22   49   76
[2,]   28   64  100

 

순서가 바뀌면 곱이 불가능합니다. 

 

> m3%*%m2
Error in m3 %*% m2 : 적합한 인자들이 아닙니다
반응형

댓글