[R] Combining matrices

Marc Schwartz
Mon, 24 Aug 2009 16:46:37 -0000

On Aug 24, 2009, at 11:16 AM, Daniel Nordlund wrote:

> If I have two matrices like
>
> x <- matrix(rep(c(1,2,3),3),3)
> y <- matrix(rep(c(4,5,6),3),3)
>
> How can I combine  them to get ?
>
> 1 1 1 4 4 4
> 1 1 1 5 5 5
> 1 1 1 6 6 6
> 2 2 2 4 4 4
> 2 2 2 5 5 5
> 2 2 2 6 6 6
> 3 3 3 4 4 4
> 3 3 3 5 5 5
> 3 3 3 6 6 6
>
> The number of rows and the actual numbers above are unimportant,
> they are given so as to illustrate how I want to combine the
> matrices.  I.e., I am looking for a general way to combine the first
> row of x with each row of y, then the second row of x with y, ....
>
> Thanks,
>
> Dan



nr.x <- nrow(x)
nr.y <- nrow(y)

 > cbind(x[rep(1:nr.x, each = nr.x), ], y[rep(1:nr.y, nr.y), ])
       [,1] [,2] [,3] [,4] [,5] [,6]
  [1,]    1    1    1    4    4    4
  [2,]    1    1    1    5    5    5
  [3,]    1    1    1    6    6    6
  [4,]    2    2    2    4    4    4
  [5,]    2    2    2    5    5    5
  [6,]    2    2    2    6    6    6
  [7,]    3    3    3    4    4    4
  [8,]    3    3    3    5    5    5
  [9,]    3    3    3    6    6    6



HTH,

Marc Schwartz