Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2002
*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 2002

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

Search the Archive

Re: AppendTo VERY slow

  • To: mathgroup at smc.vnet.net
  • Subject: [mg35317] Re: AppendTo VERY slow
  • From: "Carl K. Woll" <carlw at u.washington.edu>
  • Date: Mon, 8 Jul 2002 03:16:25 -0400 (EDT)
  • Organization: University of Washington
  • References: <ag6ed8$bnm$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Mike,


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.

Due to the way Mathematica handles lists internally, appending items to a
list is exceedingly slow. For further discussion of this subject you could
search the Mathematica newsgroup. For example, search for AppendTo and
Lichtblau for a good starting point.

Carl Woll
Physics Dept
U of Washington

"Mike" <M.P.Croucher at Sheffield.ac.uk> wrote in message
news:ag6ed8$bnm$1 at smc.vnet.net...
> 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: AppendTo VERY slow
  • Next by Date: Re: A Bug?
  • Previous by thread: Re: AppendTo VERY slow
  • Next by thread: Re: AppendTo VERY slow