R doesn't really have a lot of shortcut notations for creating matrices like matlab. The most explicit it just to stick with the rbind
and cbind
as you've already done. If it's something you find yourself doing a lot, you could write a helper function like this
mat_shape <- function(expr) {
env<-new.env(parent=parent.frame())
env[[":"]] <- base::cbind
env[["/"]] <- base::rbind
eval(substitute(expr), envir = env)
}
here we re-refine :
to be cbind and /
to be rbind for this particular function input. Then you could do
A <- matrix(1:6, ncol=3)
B <- matrix(1:4, ncol=2)
C <- matrix(1:3, ncol=1)
D <- matrix(1:12, ncol=4)
mat_shape(A:B/C:D)
# [,1] [,2] [,3] [,4] [,5]
# [1,] 1 3 5 1 3
# [2,] 2 4 6 2 4
# [3,] 1 1 4 7 10
# [4,] 2 2 5 8 11
# [5,] 3 3 6 9 12