-
R 기초 5 - Matrix(2차원 배열)R 2022. 10. 23. 16:22
행 = 가로
열 = 세로
# Matrix : 2차원 배열 a <- 1:8 dim(a) <- c(2, 4) # 열부터 채운다. a typeof(a) # integer class(a) # "matrix" "array" mode(a) # "numeric" m <- matrix(1:5) m dim(m) # m <- matrix(c(1:9), nrow=3) m <- matrix(c(1:9), nrow=3, byrow = T) # 1 ~ 9까지 3열 호출 m dim(m) m <- matrix(1:10, 2) # 1 ~ 10까지 2행으로 호출 m # m <- matrix(1:10, 3) 1 ~ 10까지 3행로 호출 m class(m) # "matrix" "array" m[1,] # 1행 호출 m[1, 1] # 1행 1열 호출 m[, 3] # 3열 호출 err 없음 m[c(1,3),c(2:4)] m[-1,] a <- matrix(c(1:9), nrow=3, ncol=3) # 3행 3열 a rownames(a) <- c('r1', 'r2', 'r3') # 행 이름 바꿈 colnames(a) <- c('one', 'two', 'three') # 열 이름 바꿈 a nrow(a) NROW(a) # 행의 갯수 dim(a) # 행과 열 갯수 length(a) # 총 갯수 a <- matrix(c(1,2,3,4,5), 2, 2) # 1 ~ 5중에 2행 2열까지 b <- matrix(5:8, 2, 2) # 5 ~ 8중에 2행 2열까지 a b a + 10 a + b a * b # 아다마드 곱 a %*% b #행렬 곱만 가능 # 행렬 곱 : 도형의 면적, 부피 계산, 머신러닝의 차원축소, # 딥러닝에서 입력자료와 가중치 연산 등을 할 때 사용 # a %+% b 불가 a diag(a) # 왼쪽 위부터 대각선 값 호출 diag(2) a t(a) # 행렬전환 (transpose : 전치) solve(a) # 역행렬 solve(solve(a)) solve(a) %*% a x1 <- c(5, 40, 50:52) x2 <- c(30, 5, 6:8) x1 x2 mr <- rbind(x1, x2) # 값 갯수대로 열로 만들어준다. mr mc <- cbind(x1, x2) # 값 갯수대로 행으로 만들어준다. mc
dim함수는 행과 열의 갯수를 얘기한다.
행렬 곱은 행과 열이 같아야한다.
행렬 곱곱
a [,1] [,2] [1,] 1 3 [2,] 2 4 b [,1] [,2] [1,] 5 7 [2,] 6 8 a %*% b #행렬 곱곱 [,1] [,2] [1,] 23 31 [2,] 34 46
행렬 곱셈 링크 참조
행렬의 곱셈, 행렬의 거듭제곱
행렬의 곱셈은 행렬의 실수배에 비하면 훨씬 어려워요. 행렬을 곱할 수 있는 조건이 있어 이 조건을 만족하지 않으면 곱셈을 하지 못하는 경우도 있어요. 게다가 계산방식도 매우 까다롭죠. 도
mathbang.net
'R' 카테고리의 다른 글
R 기초 7 - DataFrame (0) 2022.10.23 R 기초 6 - Array, List (0) 2022.10.23 R 기초 4 - Vector(1차원 배열) (0) 2022.10.23 R 기초 3 - Package 사용(함수) (0) 2022.10.23 R 기초 2 - 내장함수명 (0) 2022.10.23