Re: List manipulation
- To: mathgroup at smc.vnet.net
- Subject: [mg70206] Re: List manipulation
- From: Peter Pein <petsie at dordos.net>
- Date: Sat, 7 Oct 2006 07:08:00 -0400 (EDT)
- References: <eg4rtn$fah$1@smc.vnet.net>
xun schrieb: > Hello, > > I have something as following: > > a = Array[aa, {3, 3}]; > b = Array[bb, {3, 3}]; > c = Array[cc, {3, 3}]; > d = Array[dd, {3, 3}]; > A = {{a, b}, {c, d}} (* A consists of four blocks *) > A // MatrixForm > > And I want a 6*6 matrix (a list of 6 lists) just as A looks like. > For example, the first row should be > > aa[1,1],aa[1,2],aa[1,3],bb[1,1],bb[1,2],bb[1,3] > > etc.... > > How to get it easily? > > Many thanks. > Xun > > Hi Xun, This: Transpose[Flatten[Thread[Join[##]] & @@@ {{a, c}, {b, d}}, 1]] or this: Join @@@ Flatten[Thread[List[##]] & @@@ {{a, b}, {c, d}}, 1] or this: Sequence @@@ Map[Flatten, Thread[{##}] & @@@ {{a, b}, {c, d}}, {2}] and for sure dozens of other (propably more efficient) methods do what you want. Easy to remember is: << Statistics`DataManipulation` ColumnJoin[RowJoin[a, b], RowJoin[c, d]] or if you prefer to write all parameters at the end: ColumnJoin @@ RowJoin @@@ {{a, b}, {c, d}} HTH, Peter