Odp: Matrix
Hi, Perhaps this can help if you don't want to manually specify the permutation of indices,
A=matrix(10,ncol=2,nrow=2)
B <- 2*A
C <- rbind(A, B)
C[ as.vector(t(matrix(seq(1,nrow(C)),ncol=2))), ] # trick to create
the vector of permutations
[,1] [,2]
[1,] 10 10
[2,] 20 20
[3,] 10 10
[4,] 20 20
The transpose operation might slow down the process on very large matrices, I'm not sure how to improve this. Hope this helps, baptiste
On 2 Feb 2009, at 17:02, Paul Smith wrote:
On Mon, Feb 2, 2009 at 4:05 PM, Petr PIKAL <petr.pikal at precheza.cz> wrote:
Hi r-help-bounces at r-project.org napsal dne 02.02.2009 16:52:06:
Hi, I have a very basic question on merging two matrices by alternating the rows. For illustration, assume two matrices - A looks like: 10 10 10 10 B looks like: 20 20 20 20 How do I combine them such that I get alternating rows from A and B? My final result should be C which looks like: 10 10 20 20 10 10 20 20
I would rbind both matrices and then indexed the resulting matrix. x<-rep(10,4) y<-rep(20,4) dim(x)<-c(2,2) dim(y)<-c(2,2) z<-rbind(x,y)
z
[,1] [,2] [1,] 10 10 [2,] 10 10 [3,] 20 20 [4,] 20 20 ind<-c(seq(1,4,2), seq(2,4,2)) z[ind,]
z[ind,]
[,1] [,2] [1,] 10 10 [2,] 20 20 [3,] 10 10 [4,] 20 20
Another solution: m1 <- matrix(10,4,2) m2 <- matrix(20,2,2) m1[seq(2,4,2),] <- m2 Paul
______________________________________________ R-help at 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.
_____________________________ Baptiste Augui? School of Physics University of Exeter Stocker Road, Exeter, Devon, EX4 4QL, UK Phone: +44 1392 264187 http://newton.ex.ac.uk/research/emag