MathGroup Archive 2006

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Flatten and BlockProcessing

  • To: mathgroup at smc.vnet.net
  • Subject: [mg65654] Re: Flatten and BlockProcessing
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Wed, 12 Apr 2006 06:00:03 -0400 (EDT)
  • Organization: The Open University, Milton Keynes, UK
  • References: <e1fp4f$beo$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Maarten van der Burgt wrote:
> Hallo,
> 
> I have a structure M:
> 
> M = {{{{a, b}, {e, f}}, {{c, d}, {g, h}}}, {{{k, l}, {o, p}}, {{m, n}, {q,
> r}}}}
> 
> 
> M//Dimensions
> 
> gives
> 
> {2, 2, 2, 2},
> 
> (or more general {n1, n2, m1, m2}; M is the result of the BlockProcessing
> function from the Image Processing package)
> 
> Does anyone know an elegant way of 'flattening' M to give
> 
> {{a, b, c, d}, {e, f, g, h}, {k, l, m, n}, {o, p, q, r}}
> 
> with dimensions {4, 4} (or more general {n1*m1, n2*m2})?
> 
> 
> Thanks for your help,
> 
> 
> Maarten
> 
Hi Marteen,

Something along the following lines might help:

In[1]:=
M = {{{{a, b}, {e, f}}, {{c, d}, {g, h}}},
     {{{k, l}, {o, p}}, {{m, n}, {q, r}}}};

In[2]:=
Partition[Flatten[Partition[Flatten[M], 2, 4]], 4]

Out[2]=
{{a, b, c, d}, {k, l, m, n}}

In[3]:=
Partition[Flatten[Partition[Drop[Flatten[M], 2], 2,
     4]], 4]

Out[3]=
{{e, f, g, h}, {o, p, q, r}}

In[4]:=
Union[%%, %]

Out[4]=
{{a, b, c, d}, {e, f, g, h}, {k, l, m, n},
   {o, p, q, r}}

Regards,
Jean-Marc


  • Prev by Date: FindFit / NonlinearFit Problems
  • Next by Date: Re: Flatten and BlockProcessing
  • Previous by thread: Re: Flatten and BlockProcessing
  • Next by thread: Re: Flatten and BlockProcessing