Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2005
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2005

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

Search the Archive

Re: Re: arrange lists side by side

  • To: mathgroup at smc.vnet.net
  • Subject: [mg56606] Re: [mg56591] Re: arrange lists side by side
  • From: "Wolf, Hartmut" <Hartmut.Wolf at t-systems.com>
  • Date: Sat, 30 Apr 2005 01:27:15 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

>-----Original Message-----
>From: Carl K. Woll [mailto:carlw at u.washington.edu] 
To: mathgroup at smc.vnet.net
>Sent: Friday, April 29, 2005 9:22 AM
>Subject: [mg56606] [mg56591] Re: arrange lists side by side
>
><marloo3 at mail15.com> wrote in message news:d4q1qj$oh8$1 at smc.vnet.net...
>> Hi
>> is there a way to spread out a small list over a bigger list 
>recurrently 
>> like
>> this:
>> a={28, 30, 17};
>> b={1, 2, 9, 4, 5, 7, 3, 8};
>> to give the output:
>> {{1,28},{2,30},{9,17},{4,28},{5,30},{7,17},{3,28},{8,30}};
>> the number of items in "b" do not neccesary  multiples of 
>the number of 
>> items
>> in "a"
>> mark
>>
>> okay this is my approach
>>
>> a={28,30,17};
>> b={1,2,9,4,5,7,3,8};
>> aa={};aa=Table[Join[aa,a],{i,Length[b]/Length[a]}]
>>
>> Out[]=
>> {{28,30,17},{28,30,17}}
>>
>> frc=Mod[Length[b],Length[a]];
>> gg=Flatten[Join[aa,Part[a,{1,frc}]]];
>> Transpose[Join[{b},{gg}]]
>>
>> Out[]=
>> {{1,28},{2,30},{9,17},{4,28},{5,30},{7,17},{3,28},{8,30}}
>>
>> 
>----------------------------------------------------------------------
>>
>>
>
>Undoubtedly you will get a lot of responses. Here is one more.
>
>Transpose[ PadRight[ {{}}, {2, Length[b]}, {b,a} ] ]
>
>Carl Woll 
>
>
>

my first idea, quite similar, was this:

In[5]:= Transpose[{b, PadRight[{}, Length[b], a]}]
Out[5]=
{{1, 28}, {2, 30}, {9, 17}, {4, 28}, {5, 30}, {7, 17}, {3, 28}, {8, 30}}


This however is a bit obfuscated:

In[15]:= First@ListCorrelate[b, a, {1, Length[a]}, a, List, List]
Out[15]=
{{1, 28}, {2, 30}, {9, 17}, {4, 28}, {5, 30}, {7, 17}, {3, 28}, {8, 30}}

or this

In[30]:=
Transpose@Prepend[Partition[a, Length[b], Length[b], {1, 1}, a], b]
Out[30]=
{{1, 28}, {2, 30}, {9, 17}, {4, 28}, {5, 30}, {7, 17}, {3, 28}, {8, 30}}


--
Hartmut


  • Prev by Date: Re: Re: Re: NIntegrate and NDSolve
  • Next by Date: Re: Re: arrange lists side by side
  • Previous by thread: Re: arrange lists side by side
  • Next by thread: Re: Re: arrange lists side by side