If you can rearrange things to work column-wise rather than row-wise, then dim(x) <- NULL
makes a matrix into a vector by concatenating columns, and dim(x) <- c(m,n) makes the vector x into a matrix with column 1 equal to the first m elements of x, column 2 equal to the next m elements, etc. If you need row-major order, you can do x <- as.vector(t(x)) and x <- matrix(x,nrow=m,ncol=n,byrow=TRUE) Reid Huntsinger -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Bill Simpson Sent: Monday, March 21, 2005 4:44 PM To: r-help Subject: [R] flatten a matrix and unflatten it I want to flatten a matrix and unflatten it again. Please tell me how to do it. 1. given a matrix: x1 y1 z1 x2 y2 z2 ... xk yk zk convert it to a vector: x1, y1, z1, x2, y2, z2, ..., xk, yk, zk 2. given a vector: x1, y1, z1, x2, y2, z2, ..., xk, yk, zk convert it to a matrix x1 y1 z1 x2 y2 z2 ... xk yk zk It is known that the number of dimensions is 3. Thanks for any help! Bill ______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html ______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
