Re: split again
- To: mathgroup at smc.vnet.net
- Subject: [mg73693] Re: split again
- From: Bill Rowe <readnewsciv at sbcglobal.net>
- Date: Sat, 24 Feb 2007 02:30:10 -0500 (EST)
On 2/23/07 at 4:36 AM, Arkadiusz.Majka at gmail.com wrote: >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 t= o your >help) >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 you posted doesn't seem to do what you describe. That is In[24]:= Split[Table[Random[], {10}], #1 <= 0.7 === #2 >= 0.7 & ] Out[24]= {{0.485581},{0.0582696},{0.0355538},{0.26509},{0.0298827,0.779148,0.0770904= , 0.855232,0.0559297},{0.638716}} Note with this test, the third sublist contains elements greater than 0.7 Changing the test to: In[25]:= Split[Table[Random[], {10}], #1 <= 0.7 && #2 <= 0.7 & ] Out[25]= {{0.93307},{0.478675,0.145163,0.513827,0.526321,0.00400982},{0.740881},{0.\ 759314},{0.904306},{0.59457}} does what you say you want. >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. Either Cases or Select will work here. First with Cases: In[26]:= z = Table[Random[], {1000}]; zSplit = Split[z, #1 <= 0.7 && #2 <= 0.7 & ]; Cases[zSplit, _?(Length[#1] > 5 & )][[1]] Out[28]= {0.255395,0.374394,0.402473,0.25127,0.197126,0.338841,0.137383,0.221387, 0.417978,0.26175,0.28215,0.165457} or with Select In[29]:= Select[zSplit,Length[#1]>5&][[1]] Out[29]= {0.255395,0.374394,0.402473,0.25127,0.197126,0.338841,0.137383,0.221387, 0.417978,0.26175,0.28215,0.165457} -- To reply via email subtract one hundred and four