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 > >