Re: split again
- To: mathgroup at smc.vnet.net
- Subject: [mg73674] Re: split again
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Sat, 24 Feb 2007 02:19:51 -0500 (EST)
- Organization: The Open University, Milton Keynes, UK
- References: <ermd8n$hmd$1@smc.vnet.net>
Arkadiusz.Majka at gmail.com wrote:
> Hi,
>
> Thank you very much for your help in my provious post. Now, consider
> please a list
>
> z=Table[Random[],{1000}];
>
> zSplit=Split[z,#1<=0.7 === #2>=0.7]; (bulit thanks to your
!!!---------------------------------^!!!
This is NOT a pure function: '&' is missing.
> I want to pick the first sublist of zSplit that consists of elements
> <= 0.7 and whose length is greater than a certain number (say 5). I
> think that a good candidate would be using Cases and variations of _ ,
> but I don't know how.
>
> What I want to do (and what my both posts are about) is to find the
> first sublist of z with all elements less than A and the length of
> this sublist must be greater than B. Maybe there exists better
> solution than to Split z in advance since what I need to do in my next
> step is to find ONLY the FIRST sublist of splitted z.
Here is an example, with a smaller set of data, that illustrate the
usage of Position. Adjust the values in In[5] as you wish.
In[1]:=
z = Table[Random[], {20}];
In[2]:=
zSplit = Split[z, #1 <= 0.7 === #2 >= 0.7 & ]
Out[2]=
{{0.0931438}, {0.682899},
{0.281936, 0.834176, 0.364066},
{0.437316, 0.992434, 0.236221}, {0.0318242},
{0.210513}, {0.274683, 0.816371, 0.511568},
{0.592908}, {0.0374695}, {0.237045}, {0.318043},
{0.368736, 0.73596, 0.314188}}
In[5]:=
Position[zSplit, x_ /; Length[x] == 3 && Max[x] <= 0.9, {1}, 1]
Out[5]=
{{3}}
Regards,
Jean-Marc