MathGroup Archive 2005

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

Search the Archive

Re: Transpose to multiple lists

  • To: mathgroup at smc.vnet.net
  • Subject: [mg55771] Re: Transpose to multiple lists
  • From: dh <dh at metrohm.ch>
  • Date: Wed, 6 Apr 2005 03:11:00 -0400 (EDT)
  • References: <d2tf20$qk8$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Hi Konstant,
here is a short, but cryptic solution:

t={{2, 3}, {1, 2, 3}};
Flatten[ (i = 1; {i++, #} & /@ #) & /@ t , 1]

Out:{{1, 2}, {2, 3}, {1, 1}, {2, 2}, {3, 3}}

Explenation:
We are using two nested pure function:
The inner one f1: {i++,#}& replaces every Integer by a list of 
{Index,Integer} and increments the index.
The outer one f2: (i=1; f1 /@ #)& resets the index to 1 and then maps f1 
  to its argument (This will be a single list of integers.)
f2 is then mapped to the list of list of integers.

Because we now have an additional level in the nesting of lists, like:
{{{1, 2}, {2, 3}}, {{1, 1}, {2, 2}, {3, 3}}}
we remove the superflous nesting by Flatten.

Sincerely, Daniel

konstantpi at mail15.com wrote:
> First Q:Transpose to multiple lists
> a={3,6,3,2}
> b={9,8,7,6}
> Join[Transpose[{Range[Length[a]], a}],Transpose[{Range[Length[b]], b}]]
> 
> Out[]={{1, 3}, {2, 6}, {3, 3}, {4, 2}, {1, 9}, {2, 8}, {3, 7}, {4, 6}}
> what are the concise solutions other than this dumby solution
> 
> Second Question: transposing Range to every sublist
> lst={{4,6,3},{6,8,7,3},{9,4}}
> how could i obtain the output:
> {{1,4},{2,6},{3,3},{1,6},{2,8},{3,7},{4,3},{1,9},{2,4}}
> thanks
> konstant.
> 


  • Prev by Date: Re: Integer
  • Next by Date: Re: 3D graphics domain
  • Previous by thread: Re: Transpose to multiple lists
  • Next by thread: Re: Transpose to multiple lists