Hi everybody, I'm looking for an optimal way to split a big matrix (e.g. ncol = 8, nrow=8) into small square submatrices (e.g. ncol=2, nrow=2)
For example If I have > h [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [1,] 1 9 17 25 33 41 49 57 [2,] 2 10 18 26 34 42 50 58 [3,] 3 11 19 27 35 43 51 59 [4,] 4 12 20 28 36 44 52 60 [5,] 5 13 21 29 37 45 53 61 [6,] 6 14 22 30 38 46 54 62 [7,] 7 15 23 31 39 47 55 63 [8,] 8 16 24 32 40 48 56 64 and I want to split matriz h into 16 small submatrices: > g[1] [,1] [,2] [1,] 1 9 [2,] 2 10 > g[2] [,1] [,2] [1,] 17 25 [2,] 18 26 ... > g[4] [,1] [,2] [1,] 49 57 [2,] 50 58 ... > g[16] [,1] [,2] [1,] 55 63 [2,] 56 64 Always the big matrix would be a square matrix and also would have a nrow and ncol in order of a power of two, so it always could be splitted in at least halves. Until now, I'm able to split a matrix but keeping the number of original matrix columns. I mean, if I want to split into 16 submatrices, using the following command what I get its 4 lists: But I haven't found a way to split resultant lists in order to get 4 matrices for each list. > g <- split(as.data.frame(h), (1:4)) > g $`1` V1 V2 V3 V4 V5 V6 V7 V8 1 1 9 17 25 33 41 49 57 5 5 13 21 29 37 45 53 61 $`2` V1 V2 V3 V4 V5 V6 V7 V8 2 2 10 18 26 34 42 50 58 6 6 14 22 30 38 46 54 62 $`3` V1 V2 V3 V4 V5 V6 V7 V8 3 3 11 19 27 35 43 51 59 7 7 15 23 31 39 47 55 63 $`4` V1 V2 V3 V4 V5 V6 V7 V8 4 4 12 20 28 36 44 52 60 8 8 16 24 32 40 48 56 64 I would appreciate any hint. Thanks. -- View this message in context: http://r.789695.n4.nabble.com/Split-matrix-into-square-submatices-tp4375563p4375563.html Sent from the R help mailing list archive at Nabble.com. ______________________________________________ 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.