MathGroup Archive 2001

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

Search the Archive

RE: Nested Lists

  • To: mathgroup at smc.vnet.net
  • Subject: [mg28389] RE: [mg28373] Nested Lists
  • From: "David Park" <djmp at earthlink.net>
  • Date: Sun, 15 Apr 2001 00:13:40 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

Bob,

Here is some sample data with N = 3.

data = Table[{t, {{Cos[t], Sin[t], 0},
      {0, Cos[t], Sin[t]}, {t, t^2/25, t^3/125}}},
    {t, 0, 5, 0.05}];

As an example, the 5'th piece of data is

data[[5]]
{0.2, {{0.980067, 0.198669, 0}, {0, 0.980067, 0.198669}, {0.2, 0.0016,
      0.000064}}}

This is a routine that will extract the data associated with the n'th
object. It is suitable for routines like Fit, but not for plotting.

extractdata[n_] := ({#1[[1]], #1[[2,n]]} & ) /@ data

data1 = extractdata[1];
data3 = extractdata[3];

Here is the 5'th piece of data1

data1[[5]]
{0.2, {0.980067, 0.198669, 0}}

This form of the data is suitable for routines like Fit. Notice that Fit
works on vector functions although the documentation doesn't explicitly
mention it.

Fit[data1, {Sin[t], Cos[t], t, t^2, t^3}, t] // Chop
{1. Cos[t], 1. Sin[t], 0}

Fit[data3, {Sin[t], Cos[t], t, t^2, t^3}, t] // Chop
{1. t, 0.04 t^2, 0.008 t^3}

On the other hand, if we want to plot the points with a routine like
ScatterPlot3D, you can extract the points this way:

Needs["Graphics`Graphics3D`"]
plotdata3 = (#1[[2,3]] & ) /@ data;
ScatterPlot3D[plotdata3]

David Park
djmp at earthlink.net
http://home.earthlink.net/~djmp/







> From: Robert Love [mailto:rlove at neosoft.com]
To: mathgroup at smc.vnet.net
> I'm confused about nested lists and how to select/extract data from them.
>
> I have a file of data I can use ReadList to read.  The data is laid out
> like this:
>
> t1
> x y z
> x y z
> x y z
> x y z
> t2
> x y z
> x y z
> x y z
> x y z
> t3
> etc.
>
> The data consists of a timestamp on a line and then the 3D position of
> each of the N objects for that time.  N is always the same number
> so I read it it like this:
>
> ReadList["file",{Number, Table[Number, Number, Number,{N}]}]
>
> I'm doing this from memory since the computer w/Mathematica is at work.
> So I may not have every  detail of the ReadList correct but what I end up
> with is
>
> {{t1,{{x,y,z},{x,y,z},{x,y,z},{x,y,z}},
>  {t2,{{x,y,z}...
>
>
> My question is now  do I extract this  suitable for graphing, that is, how
> do I turn this into something like a set of all the object #4 positions
> along with the time?  I'm sure there is some combination of Flatten, Take,
> Transpose and Map that  will do what I want.  What is it?  Also, is there
> a better way to use  ReadList?  I'm stuck with the file format but I can
> change how I read the data.
>
> All advice appreciated.
>
> Bob Love
>
>



  • Prev by Date: RE: Nested Lists
  • Next by Date: RE: How do I see justification of solution?
  • Previous by thread: RE: Nested Lists
  • Next by thread: Re: Nested Lists