MathGroup Archive 2011

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

Search the Archive

Re: how to partition a list


It's probably not most efficient way, but what about doing something like this:

Module[{npos = 5, nestf, add = 5},
 nestf[lst1_] :=
  Append[Drop[lst1, lst1[[npos, 1]] + add],
   Take[lst1, lst1[[npos, 1]] + add]];
 Nest[nestf, Drop[data, 1], data[[1, 1]]]]

output:

{{{"T", "vs.", "Distance", "for", "part",
   4}, {"Distance"}, {"T"}, {1}, {5}, {0, 300.006}, {5, 300.006}, {10,
    300.006}, {15, 300.006}, {20, 300.006}}, {{"P", "vs.", "Distance",
    "for", "part", 4}, {"Distance"}, {"P"}, {1}, {6}, {0,
   1.00007}, {5, 1.00007}, {10, 1.00007}, {15, 1.00007}, {20,
   1.00007}, {25, 1.00007}}, {{"CO2", "vs.", "Distance", "for",
   "part", 4}, {"Distance"}, {"CO2"}, {1}, {7}, {0, 0.000326099}, {5,
   0.000326099}, {10, 0.000326099}, {15, 0.000326099}, {20,
   0.000326099}, {25, 0.000326099}, {30, 0.000326099}}}

Heike

On 15 Mar 2011, at 11:03, Ted Sariyski wrote:

> Hi,
> I have data with the following structure:  the first element is the
> number of variables.  For each variable follow: 
> title,x_var,y_var,dummy,number of points, {points}. I want to extract
> data for each variable. Coming from Fortran I tend to make a Do-cycle,
> count for the current position and assign values one by one. Is there a
> better approach to this problem?
> Thanks,
> --Ted
>
>
> data={{3}, {"T", "vs.", "Distance", "for", "part", 4}, {"Distance"},
> {"T"}, {1}, {5}, {0, 300.006}, {5,  300.006}, {10, 300.006}, {15,
> 300.006}, {20, 300.006},
> {"P", vs.", "Distance", "for", "part", 4}, {"Distance"}, {"P"}, {1},
> {6}, {0, 1.00007}, {5, 1.00007}, {10, 1.00007}, {15, 1.00007}, {20,
> 1.00007}, {25, 1.00007},
> {"CO2","vs.", "Distance", "for", "part", 4}, {"Distance"}, {"CO2"}, {1},
> {7}, {0, 0.000326099}, {5, 0.000326099}, {10, 0.000326099}, {15,
> 0.000326099}, {20, 0.000326099}, {25, 0.000326099}, {30, 0.000326099}}
>
>
>



  • Prev by Date: Re: how to partition a list
  • Next by Date: Re: Is it Possible to Create a Logarithmic Slider Control?
  • Previous by thread: how to partition a list
  • Next by thread: how to plot 'carpet' of curves