반응형
행렬 목록 합계
이 질문에 이미 답변이 있습니다.
- 숫자 목록 요소를 합산하는 방법 2 답변
각 요소가 5 * 5 행렬 인 목록이 있습니다. 예
[[1]]
V1 V2 V3 V4 V5
[1,] 0.000000 46.973700 21.453500 338.547000 10.401600
[2,] 43.020500 0.000000 130.652000 840.526000 56.363700
[3,] 12.605600 173.238000 0.000000 642.075000 19.628100
[4,] 217.946000 626.368000 481.329000 0.000000 642.341000
[5,] 217.946000 626.368000 481.329000 0.000000 642.341000
[[2]]
V1 V2 V3 V4 V5
[1,] 0.000000 47.973700 21.453500 338.547000 10.401600
[2,] 143.020500 0.000000 130.652000 840.526000 56.363700
[3,] 312.605600 17.238000 0.000000 642.075000 19.628100
[4,] 17.946000 126.368000 481.329000 0.000000 642.341000
[5,] 217.946000 626.368000 481.329000 0.000000 642.341000
...
apply-like 함수를 사용하여 행렬 [1]을 [n]에 합하고 결과로 5 * 5 행렬을 반환 할 수 있습니까 (각 요소는 목록의 각 행렬에있는 해당 요소의 합계입니다)?
사용 Reduce
.
## dummy data
.list <- list(matrix(1:25, ncol = 5), matrix(1:25, ncol = 5))
Reduce('+', .list)
## [,1] [,2] [,3] [,4] [,5]
## [1,] 2 12 22 32 42
## [2,] 4 14 24 34 44
## [3,] 6 16 26 36 46
## [4,] 8 18 28 38 48
## [5,] 10 20 30 40 50
@mnel의 대답이 더 효율적이라고 생각하지만 이것은 또 다른 접근 방식입니다.
apply(simplify2array(.list), c(1,2), sum)
[,1] [,2] [,3] [,4] [,5]
[1,] 2 12 22 32 42
[2,] 4 14 24 34 44
[3,] 6 16 26 36 46
[4,] 8 18 28 38 48
[5,] 10 20 30 40 50
당신은 do.call
약간의 원숭이와 함께 할 수 있지만 그 웅변을 잃습니다.
.list <- list(matrix(1:25, ncol=5), matrix(1:25,ncol=5), matrix(1:25,ncol=5))
x <- .list[[1]]
lapply(seq_along(.list)[-1], function(i){
x <<- do.call("+", list(x, .list[[i]]))
})
x
참조 URL : https://stackoverflow.com/questions/11641701/sum-a-list-of-matrices
반응형
'Programing' 카테고리의 다른 글
함수 정의에 삼중 따옴표가있는 문자열 리터럴 (0) | 2021.01.11 |
---|---|
Hive 란? : org.apache.hadoop.hive.ql.exec.MapRedTask의 리턴 코드 2 (0) | 2021.01.11 |
symfony2 전역 도우미 함수 (서비스)에서 서비스 컨테이너에 액세스하는 방법은 무엇입니까? (0) | 2021.01.11 |
MVC 4 클라이언트 측 유효성 검사가 작동하지 않음 (0) | 2021.01.11 |
Twitter 부트 스트랩과 Angular.js의 실제 (또는 숨겨진) 차이점 (0) | 2021.01.11 |