[R] Kronecker matrix product
Berwin A Turlach
berwin at maths.uwa.edu.au
Wed Jul 13 11:37:37 CEST 2005
>>>>> "RH" == Robin Hankin <r.hankin at noc.soton.ac.uk> writes:
RH> I want to write a little function that takes a matrix X of
RH> size m-by-n, and a list L of length "m", whose elements are
RH> matrices all of which have the same number of columns but
RH> possibly a different number of rows.
RH> I then want to get a sort of dumbed-down kronecker product in which
RH> X[i,j] is replaced by X[i,j]*L[[j]]
RH> where L[[j]] is the j-th of the "m" matrices. For example, if
RH> X = matrix(c(1,5,0,2),2,2)
RH> and
RH> L[[1]] = matrix(1:4,2,2)
RH> L[[2]] = matrix(c(1,1,1,1,1,10),ncol=2)
RH> I want
RH> [,1] [,2] [,3] [,4]
RH> [1,] 1 3 0 0
RH> [2,] 2 4 0 0
RH> [3,] 5 5 2 2
RH> [4,] 5 5 2 2
RH> [5,] 5 50 2 20
> tmp <- sapply(1:length(L), function(j, mat, list) kronecker(X[j,,drop=FALSE], L[[j]]), mat=X, list=L)
> do.call("rbind", tmp)
[,1] [,2] [,3] [,4]
[1,] 1 3 0 0
[2,] 2 4 0 0
[3,] 5 5 2 2
[4,] 5 5 2 2
[5,] 5 50 2 20
>
HTH.
Cheers,
Berwin
========================== Full address ============================
Berwin A Turlach Tel.: +61 (8) 6488 3338 (secr)
School of Mathematics and Statistics +61 (8) 6488 3383 (self)
The University of Western Australia FAX : +61 (8) 6488 1028
35 Stirling Highway
Crawley WA 6009 e-mail: berwin at maths.uwa.edu.au
Australia http://www.maths.uwa.edu.au/~berwin
More information about the R-help
mailing list