Re: opposite of partition
- To: mathgroup at smc.vnet.net
- Subject: [mg57568] Re: [mg57539] opposite of partition
- From: Selwyn Hollis <sh2.7183 at earthlink.net>
- Date: Wed, 1 Jun 2005 06:02:21 -0400 (EDT)
- References: <200505310900.FAA03466@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
On May 31, 2005, at 5:00 AM, Guy Israeli wrote: > Hi, > > How do I do the opposite of partition quickly? > > for example: > > l1= {{a, b, c, d, e}, {f, g, h, i, j}, {k, l, m, n, o}, {p, q, r, > s, t}, {u, > v, w, > x, y}} > > and then if I partition it to blocks will result in > > {{{{a, b}, {f, g}}, {{c, d}, {h, i}}}, {{{k, l}, {p, q}}, {{m, n}, > {r, s}}}} > > flattening it won't help, and its messy to do it by taking all > first lines > of the blocks, then second.. > > How can I do it quickly? > > > > Thanks, > > Guy Hi, This seems to do what you want: revPartition[m_] := Flatten[ Map[ Map[Flatten, #] &, Map [Transpose, m] ], 1] or, if you prefer, revPartition[m_] := Flatten[#, 1] &@(Flatten /@ # &) /@ Transpose / @ m Then, e.g., revPartition[{{{{a, b}, {f, g}}, {{c, d}, {h, i}}}, {{{k, l}, {p, q}}, {{m, n}, {r, s}}}}] ---> {{{a, b, c, d}, {f, g, h, i}}, {{k, l, m, n}, {p, q, r, s}}} Selwyn Hollis http://www.appliedsymbols.com