我有一个关于 R 的 matlab 包的问题。这是我得到的
library(matlab)
a = matrix(1:4,2,2)
repmat(a,3,1)
[,1] [,2]
[1,] 1 2
[2,] 3 4
[3,] 1 2
[4,] 3 4
[5,] 1 2
[6,] 3 4
这是我所期望的。沿第一个维度复制 3 次。但
b = matrix(1:6,2,3)
b
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
repmat(b,3,1)
[,1] [,2]
[1,] 1 2
[2,] 3 4
[3,] 5 6
[4,] 1 2
[5,] 3 4
[6,] 5 6
[7,] 1 2
[8,] 3 4
[9,] 5 6
这是不一致的。我想要一个 6 x 3 的矩阵作为获得的矩阵
rbind(b,rbind(b,b))
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
[3,] 1 3 5
[4,] 2 4 6
[5,] 1 3 5
[6,] 2 4 6
最佳答案
它似乎只是在进行堆叠之前转置矩阵。您可以在将矩阵发送到 repmat
之前将其转置
> repmat(t(b), 3, 1)
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
[3,] 1 3 5
[4,] 2 4 6
[5,] 1 3 5
[6,] 2 4 6
关于R matlab 包 : why is repmat inconsistent?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16360377/