MathGroup Archive 2008

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

Search the Archive

Re: List concatenation speed

  • To: mathgroup at smc.vnet.net
  • Subject: [mg87617] Re: List concatenation speed
  • From: dh <dh at metrohm.ch>
  • Date: Mon, 14 Apr 2008 05:46:21 -0400 (EDT)
  • References: <ftsd1e$bba$1@smc.vnet.net>


Hi Carlos,

with Append & Co. every time you add a new element, the whole list is 

copied. To prevent this, you may build a nested list like e.g.:

poly={poly,p}

instead of using Append. Finally you may Flatten the list: Flatten[poly].

hope this helps, Daniel



carlos at colorado.edu wrote:

> I am building mesh plots that require concatenation of thousands of

> Graphics objects into one list for Show[].  This is done by appending

> objects as they are created, and there are several ways to do that.

> Tested 3 of them for speed using a simple object:

> 

>      p=Table[x,{50}]; n=10000;

>      ClearAll[poly]; poly={};

>      Print[Timing[Do[AppendTo[poly,p],{i,1,n}]]];

>      ClearAll[poly]; poly={};

>      Print[Timing[Do[poly=Append[poly,p],{i,1,n}]]];

>      ClearAll[poly]; poly={};

>      Print[Timing[Do[poly=Join[poly,{p}],{i,1,n}]]];

> 

> {5.8395 Second,Null}

> {5.7206 Second,Null}

> {6.29728 Second,Null}

> 

> Tests were run on version 5.2 on a G5 desktop Mac. I expected Join to

> win,

> but it didnt.  Is there a faster way?

> 




  • Prev by Date: Re: List concatenation speed
  • Next by Date: List concatenation - two more methods, one truly fast
  • Previous by thread: Re: List concatenation speed
  • Next by thread: Re: List concatenation speed