MathGroup Archive 2004

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

Search the Archive

Re: Extracting elements of lists


Here are a few ways:

data = Table[Random[], {6},{4}];

extracts1 = data[[All,{1,2}]];

extracts2 = {#[[1]],#[[2]]}& /@ data;

extracts3 = Take[#,2]& /@ data;

extracts4 = Drop[#,-2]& /@ data;

extracts1 == extracts2 == extracts3 == extracts4

True


Bob Hanlon

In article <btncql$1s$1 at smc.vnet.net>, sashan <nothing at important.com> wrote:

<< I'm trying to extract a elements from a list and return another list 
with those elements. I've tried doing it using a while loop and 
recursion and haven't been able to do it.

The list I'm working with is a list of lists where each inner list 
contains 4 elements. Example:
{{0, 1, 0, 0}, {0.04, 1, -0.0008, 0}, {0.1, 0.999987, -0.00499995,
     0}, {0.15, 0.999937, -0.0112494, 0}, {0.18, 0.999869, -0.0161983, 
0},....

This is my recursive attempt:

listoftimex[l_] := {{First[l][[1]], First[l][[2]]}, listoftimex[Rest[l]]}

{{0, 1}, {{0.04,
    1}, {{0.1, 0.999987}, {{
     0.15, 0.999937}, {{0.18, 0.999869}, {{0.23, 0.99965}, {{0.26, 
0.999429}, \
{{0.31, 0.998847}, {{0.35, 0.998128}, {{0.39,

It extracts the 1st 2 elements of the list and puts them in a list but 
it nests lists too deep (too many { ) and it errors with 'Recursion 
depth of 256 exceeded'.

This is my attempt using a while loop:
timex[l_] := Module[{i =
     1, ans = {}}, While[i < Length[l], Append[ans, {l[[i,
        1]], l[[i, 2]]}]; i = i + 1]; Return[ans]];

This doesn't work and returns an empty list {}.
 >><BR><BR>


  • Prev by Date: complicated vector-valued function
  • Next by Date: Problem with FullSimplify in Version 5: Rationals are converted to Reals
  • Previous by thread: Re: Extracting elements of lists
  • Next by thread: RE: Extracting elements of lists