Re: opposite of partition
- To: mathgroup at smc.vnet.net
- Subject: [mg57597] Re: opposite of partition
- From: Jean-Marc Gulliet <jeanmarc.gulliet at 9online.fr>
- Date: Wed, 1 Jun 2005 06:04:36 -0400 (EDT)
- Organization: New York University
- References: <d7han9$3r7$1@smc.vnet.net>
- Reply-to: jmg336 at nyu.edu
- Sender: owner-wri-mathgroup at wolfram.com
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?
>
Hi Guy,
I am not sure to have understood exactly what you wanted; however the
following ideas came up:
In[1]:=
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}}
Out[1]=
{{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}}
In[2]:=
l2 = Partition[l1, {2, 2}]
Out[2]=
{{{{a,b},{f,g}},{{c,d},{h,i}}},{{{k,l},{p,q}},{{m,n},{r,s}}}}
In[3]:=
Flatten /@ l2
Out[3]=
{{a,b,f,g,c,d,h,i},{k,l,p,q,m,n,r,s}}
In[4]:=
Map[Flatten, l2, {2}]
Out[4]=
{{{a,b,f,g},{c,d,h,i}},{{k,l,p,q},{m,n,r,s}}}
Hope this helps,
/J.M.