Hi, On Sun, Nov 21, 2010 at 9:27 PM, Hana Lee <hana...@email.unc.edu> wrote: > Hi! > > I have a matrix called M with dimension (586,100,100).
First of all, In R it is only an object with *two* dimensions that is called "matrix". Anything with two or more dimensions is called an "array". Example: > x <- 1:(2*3*4) > y <- matrix(x, ncol=2) > z <- array(x, dim=c(2,3,4)) # VECTORS > is.vector(x) [1] TRUE > is.vector(y) [1] FALSE > is.vector(z) [1] FALSE # MATRICES > is.matrix(x) [1] FALSE > is.matrix(y) [1] TRUE > is.matrix(z) [1] FALSE # ARRAYS > is.array(x) [1] FALSE > is.array(y) [1] TRUE > is.array(z) [1] TRUE So, you've got an *array* (not a matrix). > I would like to split > and save this into 586 matrices with dimension 100 by 100. > I have tried the following for loops but couldn't get it work.. > > l<-dim(M)[1] > for (i in (1:l)){ > save(M[i,,],file = "M_[i].img") > } "...but couldn't get it work [as I wanted]." The problem you have is generate a unique filename for matrix. The following two lines generate the same filename: filename <- sprintf("M_%d.img", i); filename <- paste("M_", i, ".img", sep=""); I prefer to use the sprintf() version. So, l <- dim(M)[1] for (i in (1:l)) { filename <- sprintf("M_%d.img", i); save(M[i,,], file=filename); } My $.02 /Henrik > > Can somebody help me with this? Thanks! > > Hana Lee > > [[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. > ______________________________________________ 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.