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.pi...@precheza.cz> wrote:
Hi

r-help-boun...@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@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

______________________________________________
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