Re: Select only certain sublists matching criteria

• To: mathgroup at smc.vnet.net
• Subject: [mg111002] Re: Select only certain sublists matching criteria
• From: Chris Poole <chris at chrispoole.com>
• Date: Fri, 16 Jul 2010 05:18:41 -0400 (EDT)

Thanks. I actually solved the problem like so:

DeleteCases[Table[
If[Abs[0.1 - oldlist[[i, 3]]] <
0.05, {oldlist[[i, 1]], oldlist[[i, 2]],oldlist[[i, 3]]}]
, {i, 1, Length[oldlist]}], Null];

Seems very much like a hack though.

I don't appear to have a SelectBy function (I'm using mathematica
7...), but using Select on its own, with #[[3]] worked a charm. I
didn't realise I could still use the [[3]] notation here.

Many thanks.

On Thu, Jul 15, 2010 at 11:07 AM, Scot T. Martin
<smartin at seas.harvard.edu> wrote:
> I think you're after the function SelectBy instead of Select and then you=
're
> after the use of #[[3]] in place of #.
>
> On Thu, 15 Jul 2010, Chris Poole wrote:
>
>> I have a list like this:
>> {{0, -4, 2.283}, {0.5, -4, 2.282}, {1, -4, 2.280}, {1.5, -4,
>>  2.276}, {2, -4, 2.271}, {2.5, -4, 2.264}, {3, -4, 2.255}, {3.5, -4,
>>  2.242}}
>>
>> I want to look at each list of 3 numbers, and keep only the lists where
>> the third item in each list fits some criteria.
>>
>> I can do something like this:
>> Select[{2, 15, 1, 16, 17}, Abs[3 - #] < 3 &]
>>
>> But it only works for flat lists.
>>
>> For example, I want only the lists where the third item is around 2.25 +=
-
>> 0.001. Something like that.
>>
>> I can work out how to get Select to operate on the 3rd item of each
>> sublist, but not how to then keep that entire list.
>>
>> If anyone has any ideas, they are much appreciated.
>>
>>
>

• Prev by Date: Re: Accessing static members with J/Link
• Next by Date: Changing the default width of Exported cells
• Previous by thread: Re: Select only certain sublists matching criteria
• Next by thread: Re: Select only certain sublists matching criteria