4

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

1 回答 1

3

它似乎只是在进行堆叠之前转置矩阵。您可以在将矩阵发送到之前对其进行转置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
于 2013-05-03T13:55:19.210 回答