Create multiple matrices from 2 bigger ones in R
This will extract the rows from matrix A and B. 

matrix(c(A[x,],rep(B[x,],times=3)),nrow=2,byrow=T)


If you want to get them into a list (recommend)

single&lt;-lapply(c(1:1000), function(x) matrix(c(A[x,],rep(B[x,],times=3)),nrow=2,byrow=T))


To put them all in diagonal matrix with adiag from magic package

d&lt;-adiag(single[[1]])

for(i in 2:1000){
  d&lt;-adiag(d,single[[i]])
}


I could make it work without the loop (anyone any suggestions?)