我有一个关于 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/

10-09 23:21