MathGroup Archive 2002

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

Search the Archive

Re: AppendTo VERY slow


This should be faster

outlist = {};
Do[
    elem = {xlist[[count]], ylist[[count]]};
    outlist = {outlist, elem},
    {count, number}];
Drop[Flatten[outlist, number - 1], 1]

See notes in HelpBrowser for AppendTo :
An alternative and often more efficient way to build up a list is to use a 
sequence of assignments of the form
 s ={s, elem} and then to call Flatten on the resulting structure. 

On Saturday 06 July 2002 11:44, Mike wrote:
> I use lists a lot in mathematica and tend to use AppendTo[] a lot in
> my programs.  Recently I wrote a function that i call over and over
> again and found that the results were coming very slowly and i MEAN
> slowly.  I was doing Fourier Transforms and all kinds of stuff so I
> put it down to those at first but I have just put in a load of Print
> statements just after each part of the function to see what was taking
> so long.
>
> I was amazed to see that the Fourier Transforms were so quick and what
> was actually taking the time was a part of my function that collected
> the results togther in the form I wanted and outputted the result.  It
> looks like this
>
> Do[
>     	elem = {xlist[[count]], ylist[[count]]]};
>     	AppendTo[outlist, elem];
>      , {count, 1, number}
>     ];
>
> It seems that as the list grows it gets slower and slower.  Any tips
> on a way around this would be greatly appreciated (would speed my life
> up no end)
>
>
> Thank
>
> Mike


  • Prev by Date: Re: Integrate and warning messages.
  • Next by Date: Re: AppendTo VERY slow
  • Previous by thread: AppendTo VERY slow
  • Next by thread: Re: AppendTo VERY slow