MathGroup Archive 2007

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

Search the Archive

Re: adding rows to a table of data by looking in the table

  • To: mathgroup at smc.vnet.net
  • Subject: [mg81481] Re: [mg81381] adding rows to a table of data by looking in the table
  • From: Daniel Lichtblau <danl at wolfram.com>
  • Date: Wed, 26 Sep 2007 06:27:23 -0400 (EDT)
  • References: <200709210708.DAA07784@smc.vnet.net>

Mitch Stonehocker wrote:
> I' m struggling to get something clean and efficient and would like some
> help.  Given a set of data in the form:
> 
>    data ={ 
>   {x1,1, x1,2, .., x1,n}, 
>   {x2,1, x2,2, .., x2,n},
>   {:, :, =83, :},
>   {xm,1, xm,2, .., xm,n}
>  }
> 
> where n columns are of fixed width but m rows grow by appending new rows to
> the data set.  Exactly what gets appended depends on values of specific data
> elements in the data set.  For example, nextRow If[xm,1>0&&xm,2=A3xm,3,{},{}].
> 
>     If the nextRow condition is True then appending[data,nextRow] the next
> iteration of data should look like:
> 
>     data ={
>    {x1,1, x1,2, .., x1,n},
>    {x2,1, x2,2, .., x2,n},
>    {:, :, =83, :},
>    {xm,1, xm,2, .., xm,n},
>    {, , .., }
>   }
> 
> And so the process goes for some number of steps continuing to add rows to
> data.
> 
> Thanks for the help,
> 
> Mitch

If the total number of added rows is small you can just use

data = Append[data, nextrow]

I assume this is not the case (or else you wouldn't likely be raising 
the question). Some ideas for how to do this relatively efficiently can 
be found at:

http://library.wolfram.com/conferences/devconf99/lichtblau/

In particular you might have a look at the "Sparse arrays (hash tables)" 
and "Queues" sections.

What works best will depend on what sorts of array elements you have, 
the extent to which memory footprint is or might become an issue, lookup 
speed requirements, etc.

Daniel Lichtblau
Wolfram Research


  • Prev by Date: Re: MachinePrecission and FPU
  • Next by Date: XML parsing using patterns
  • Previous by thread: adding rows to a table of data by looking in the table
  • Next by thread: Identifying clusters of adjacent points on a lattice