我有关于MATLAB包河一个问题这是我得到R matlab包:为什么repmat不一致?
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
这是我所期望的。沿第一维复制三次。但是
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
这是不一致的。我想
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
之前,但不'A =矩阵(1:4,2,2)'给你的'[1〜3当量; 2 4]',所以功能是一致的。它只是首先转置:/所以要解决它,在调用内转置'a'和'b'到'repmat' – Dan 2013-05-03 13:46:07
不一致的是,情况1矩阵沿着维度1,3复制。在情况2中这显然没有发生。我甚至不知道如何解释情况2. – 2013-05-03 13:48:52
@FlorianOswald在这两种情况下,它看起来像转置矩阵,然后堆叠它几次... – Dason 2013-05-03 13:50:14