II am translating some gauss code into R, and gauss has a matrix
product function called the horizontal direct product (*~), which is
some sort of variant on the Kronecker product.
For example if x is 2x2 and y is 2x2
the horizontal direct product, z, of x and y is defined (in the Gauss
manual) as:
row 1 = x11*y11 x11*y12 x12*y11 x12*y12
row 2 = x21*y21 x21*y22 x22*y21 x22*y22
Or in R code if:
x <- matrix(seq(1,4,by=1),2,2, byrow=TRUE)
y <- matrix(seq(5,8,by=1),2,2, byrow=TRUE)
The resulting matrix, if I had an operator, would be the following
matrix z, here formed in a contrived manner:
z.1 <- c(5, 6, 10, 12)
z.2 <- c(21,24,28,32)
z <- rbind(z.1,z.2)
I realize that this is just the first and last row of x%*%y when x
and y are two by two but this won't generalize with larger
matrices. Any ideas about whether this can be done with existing R
functions in a general way short of writing my own function?
Thanks
Luke
Luke Keele
Department of Political Science
Ohio State University
keele.4@polisci.osu.edu
[[alternative HTML version deleted]]