logo

R의 행렬 곱셈

행렬 곱셈은 가장 유용한 행렬 연산입니다. 이는 오늘날 네트워크 이론, 좌표 변환 및 더 많은 용도와 같은 분야에서 널리 사용됩니다. R의 행렬은 다음을 사용하여 생성할 수 있습니다. 행렬() 함수이며 이 함수는 입력 벡터, nrow, ncol, byrow, 희미한 이름을 인수로 사용합니다.

행렬 만들기
Matrix() 함수를 사용하여 행렬을 만들 수 있습니다.



아르 자형
# R program to create a matrix m <- matrix(1:8, nrow=2) print(m)>

산출:

 [,1] [,2] [,3] [,4] [1,] 1 3 5 7 [2,] 2 4 6 8>

행렬의 곱셈


곱셈 연산자 * 스칼라로 행렬을 곱하거나 두 행렬의 요소별 곱셈에 사용됩니다.
스칼라를 사용한 곱셈
행렬에 스칼라 값을 곱하면 행렬의 모든 요소에 해당 스칼라가 곱해집니다.

아르 자형
# R program for matrix multiplication # with a scalar m <- matrix(1:8, nrow=2) m <- 2*m print(m)>

산출:



 [,1] [,2] [,3] [,4] [1,] 2 6 10 14 [2,] 4 8 12 16>

위 코드에서 스칼라는 원래 행렬의 모든 요소와 곱해집니다. 이것이 곱셈 과정이 일어나는 방식입니다.

2*1=2 2*3=6 2*5=10 2*7=14 2*2=4 2*4=8 2*6=12 2*8=16>

행렬 간의 곱셈

행렬이 다른 행렬과 곱해지면 두 행렬의 요소별 곱셈이 발생합니다. 두 행렬의 해당 요소는 두 행렬이 동일한 차원이라는 조건 하에서 곱해집니다.

아르 자형
# R program for matrix multiplication # Creating matrices m <- matrix(1:8, nrow=2) n <- matrix(8:15, nrow=2) # Multiplying matrices print(m*n)>

산출:



 [,1] [,2] [,3] [,4] [1,] 8 30 60 98 [2,] 18 44 78 120>

이것이 곱셈 과정이 일어나는 방식입니다.

1*8=8 3*10=30 5*12=60 7*14=98 2*9=18 4*11=44 6*13=78 8*15=120>

벡터를 이용한 곱셈

행렬에 벡터를 곱하면 벡터는 두 인수를 일치하도록 만들기 위해 행 또는 열 행렬로 승격됩니다.

아르 자형
# R program for matrix multiplication # Creating matrix m <- matrix(1:8, nrow=2) # Creating a vector vec <- 1:2 # Multiplying matrix with vector print(vec*m)>

산출:

 [,1] [,2] [,3] [,4] [1,] 1 3 5 7 [2,] 4 8 12 16>

곱셈 과정은 다음과 같이 진행됩니다.

  1*1=1 1*3=3 1*5=5 1*7=7 2*2=4 2*4=8 2*6=12 2*8=16>

%*% 연산자를 사용한 곱셈

운영자 %*% 첫 번째 행렬의 열 개수가 두 번째 행렬의 행 개수와 같다는 조건을 만족하는 행렬 곱셈에 사용됩니다. 행렬 A[M, N]과 행렬 B[N, Z]를 곱하면 결과 행렬의 차원은 M*Z가 됩니다.

아르 자형
# R program for matrix multiplication # Creating matrices m <- matrix(1:8, nrow=2) n <- matrix(8:15, nrow=4) # Multiplying matrices using operator print(m %*% n)>

산출:

 [,1] [,2] [1,] 162 226 [2,] 200 280>

곱셈은 ​​이렇게 된다

1*8+3*9+5*10+7*11 = 162 1*12+3*13+5*14+7*15=226 2*8+4*9+6*10+8*11 = 200 2*12+4*13+6*14+8*15=280>