我有一个2行2列的矩阵,并希望放大这个矩阵,使其有4行4列,其中包含相同的值.好像有人会"放大"矩阵.
这是我的2*2矩阵:
a<-matrix(1:4,nrow=2,byrow=TRUE)
[,1] [,2]
[1,] 1 2
[2,] 3 4
Run Code Online (Sandbox Code Playgroud)
我想转换这个矩阵,所以它看起来像这样:
[,1] [,2] [,3] [,4]
[1,] 1 1 2 2
[2,] 1 1 2 2
[3,] 3 3 4 4
[4,] 3 3 4 4
Run Code Online (Sandbox Code Playgroud)
我简化了问题:矩阵中的值只是一个例子.我要转换的真实矩阵由10行和10列组成,应该转换为30行和30列,但原理应该相同.
我即将通过循环来解决这个问题,但我确信必须有一个更优雅的方式.
Jul*_*ora 10
enlarge <- function(m, k) kronecker(m, matrix(1, k, k))
enlarge(a, 2)
# [,1] [,2] [,3] [,4]
# [1,] 1 1 2 2
# [2,] 1 1 2 2
# [3,] 3 3 4 4
# [4,] 3 3 4 4
enlarge(a, 3)
# [,1] [,2] [,3] [,4] [,5] [,6]
# [1,] 1 1 1 2 2 2
# [2,] 1 1 1 2 2 2
# [3,] 1 1 1 2 2 2
# [4,] 3 3 3 4 4 4
# [5,] 3 3 3 4 4 4
# [6,] 3 3 3 4 4 4
Run Code Online (Sandbox Code Playgroud)