@akrun 모두와 @ 라스 아르네 Jordanger의 솔루션은 작업과 동일한 결과를 생성합니다.
의하여 두 용액 일 :
(1) 함께 모든 행렬의 첫번째 행을 연결하고, 합한 매트릭스의 상단에서 이러한 열을 위치시키는 단계; (2) 모든 행렬의 두 번째 행을 연결하고 첫 행의 연결 아래에 이러한 행을 배치하는 등의 작업을 수행 할 수 있습니다.
은 다음의 예는 잘 생각을 보여
> threeDimArray <- array(NA, dim=c(3,3,4))
> dims <- dim(threeDimArray)
>
> constants <- c(1, 10, 100)
> for(id in 1:length(constants)){
const <- constants[id]
threeDimArray[id,,] <- matrix((1:prod(dims[2:3]))*const, dims[2], dims[3])
}
> threeDimArray[1,,]
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
> threeDimArray[2,,]
[,1] [,2] [,3] [,4]
[1,] 10 40 70 100
[2,] 20 50 80 110
[3,] 30 60 90 120
> threeDimArray[3,,]
[,1] [,2] [,3] [,4]
[1,] 100 400 700 1000
[2,] 200 500 800 1100
[3,] 300 600 900 1200
> # solution 1:
> twoDimMat <- matrix(threeDimArray, prod(dims[1:2]), dims[3])
> twoDimMat
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 10 40 70 100
[3,] 100 400 700 1000
[4,] 2 5 8 11
[5,] 20 50 80 110
[6,] 200 500 800 1100
[7,] 3 6 9 12
[8,] 30 60 90 120
[9,] 300 600 900 1200
>
> # solution 2:
> threeDArray <- threeDimArray
> dim(threeDArray) <- c(prod(dims[1:2]), dims[3])
> threeDArray
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 10 40 70 100
[3,] 100 400 700 1000
[4,] 2 5 8 11
[5,] 20 50 80 110
[6,] 200 500 800 1100
[7,] 3 6 9 12
[8,] 30 60 90 120
[9,] 300 600 900 1200
>
안녕 Akrun, 당신은 당신의 코드 (all.equal (...))의 두 번째 줄을 보여주는 몇 가지 단어를 추가하십시오 수 있을까? thanks – Nemesi
@ 네 메시 'my_matrix'의 결과가 내가 가진 것과 같은지 확인하는 것입니다. – akrun
고마워요. – Nemesi