Dear R users, I'm trying to build a diagonal matrix from a group of
matrices. These matrices have been built in a for loop. That is, I've
subsetted a preliminar matrix to obtain a certain number of square
sub-matrices, and now I need to create a diagonal out of these.
Suppose my matrix is a square matrix 21x21, and that I want to diagonalize
616 submatrices of this one. To do this I do:

diag <- rep(1,21)
work.cov <- matrix(0,21,21)
diag(work.cov) <- diag
samp <- sample(seq(1:21),616,replace=T)
for (i in 1:length(samp)){
A <- work.cov[1:samp[i],1:samp[i]]
}

Now, I want to put these 616 square matrices on the diagonal of a new
matrix. The question is: how I can I do this? I know there's a function
bdiag that creates diagonal matrix with various elements (vectors and
matrices), but the problem here's that my matrices exists only in the loop,
not outside of it, and they all correspond to the same matrix V computed
under different values of i.
Thansk in advance
niccolò

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to