MathGroup Archive 2013

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

Search the Archive

Re: Distribute one list element over another

  • To: mathgroup at smc.vnet.net
  • Subject: [mg130486] Re: Distribute one list element over another
  • From: Tomas Garza <tgarza10 at msn.com>
  • Date: Mon, 15 Apr 2013 02:29:38 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: l-mathgroup@wolfram.com
  • Delivered-to: mathgroup-newout@smc.vnet.net
  • Delivered-to: mathgroup-newsend@smc.vnet.net
  • References: <20130414003835.166586A91@smc.vnet.net>

In[1]:= data={{a1,a2,a3,{m1,m2,m3,m4}},{b1,b2,b3,{n1,n2,n3,n4}},{c1,c2,c3,{o1,o2,o3,o4}},{d1,d2,d3,{p1,p2,p3,p4}}}Out[1]= {{a1,a2,a3,{m1,m2,m3,m4}},{b1,b2,b3,{n1,n2,n3,n4}},{c1,c2,c3,{o1,o2,o3,o4}},{d1,d2,d3,{p1,p2,p3,p4}}}
In[2]:= Table[{data[[j,1]],#}&/@Last[data[[j]]],{j,1,Length[data]}]Out[2]= {{{a1,m1},{a1,m2},{a1,m3},{a1,m4}},{{b1,n1},{b1,n2},{b1,n3},{b1,n4}},{{c1,o1},{c1,o2},{c1,o3},{c1,o4}},{{d1,p1},{d1,p2},{d1,p3},{d1,p4}}}
-Tomas

> From: timm.reinisch at sprechkultur.com
> Subject: Distribute one list element over another
> To: mathgroup at smc.vnet.net
> Date: Sat, 13 Apr 2013 20:38:35 -0400
>
> Hallo,
>
> It's difficult to explain what I want to achieve and maybe if I could
> describe it better I  would have been able to google a solution.
>
> My problem deals with lists of lists of the form {a1, a2,  a3, {m1, m2,
> m3, m4}}
>
> e.g.
>
> data =
> {
> {a1, a2,  a3, {m1, m2, m3, m4}},
> {b1, b2,  b3, {n1, n2, n3, n4}},
> {c1, c2,  c3, {o1, o2, o3, o4}},
> {d1, d2,  d3, {p1, p2, p3, p4}},
> }
>
> I want is to go over the list and transform each of the sublists {a1,
> a2,  a3, {m1, m2, m3, m4}} into a list consisting of pairs {{a1, m1}, 
> {a1, m2}, {a1, m3}, {a1, m4}}
> so that for the list given above I get
>
> {
> {{a1, m1},  {a1, m2}, {a1, m3}, {a1, m4}},
> {{b1, n1},  {b1, n2}, {b1, n3}, {b1, n4}},
> {{c1, o1},  {c1, o2}, {c1, o3}, {c1, o4}},
> {{d1, p1},  {d1, p2}, {d1, p3}, {d1, p4}},
> }
>
> I think it could be possible to do this using two nested map operations
> /@, but I don't find out how to do so exactly, because I run into
> trouble with the scope of the #
>
> What I'm doing at the moment is that I use a module:
>
> verteilen[liste_] := Module[{},
>   {#[[1]], liste[[1]]} & /@ liste[[4]]
> ]
>
> and map it over the list I want to transform:
>
> verteilen[#] & /@ data
>
> I'm searching for a much mor elegant way to achive this transformation,
> any hints?
>
> Thanks and best regards
>
>  Timm
>


  • Prev by Date: Re: Distribute one list element over another
  • Next by Date: Re: Numerical Solver for 2D/3D (Reaction-)Diffusion equation
  • Previous by thread: Re: Distribute one list element over another
  • Next by thread: Re: Distribute one list element over another