MathGroup Archive 2007

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

Search the Archive

Re: split

  • To: mathgroup at smc.vnet.net
  • Subject: [mg73606] Re: split
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Fri, 23 Feb 2007 04:27:18 -0500 (EST)
  • Organization: The Open University, Milton Keynes, UK
  • References: <erjo7l$nrf$1@smc.vnet.net>

Arkadiusz.Majka at gmail.com wrote:
> Hi,
> 
> I want to split a list, say
> 
> z = {1, 3, 2, 6, 4, 7, 5,1,7};
> 
> into sublist of elements that are less or equal 3.
> 
> so I want to obtain
> 
> {{1,3,2},{6,4,7,5},{1},{7}}
> 
> How to do it? Probably by applying Split, but what to put in Test?
> 
> Split[z,#<=3&] gives :
> 
> {{1, 3, 2, 6}, {4}, {7}, {5}, {1, 7}}
> 
> Why 6 was put in first sublist together with 1, 3, and 2 since 6>3 and
> should be together with 4 in the second sublist?

Hi Arek,

The built-in function Split compares two consecutive elements at once. 
So what we want is some lists that are singletons or for which any two 
consecutive elements are less or equal to three. Also, we want some 
other lists that are singletons or for which two consecutive elements 
are greater than three. This is summed up in the expression below.

In[1]:=
z = {1, 3, 2, 6, 4, 7, 5, 1, 7};
Split[z, (#1 <= 3 && #2 <= 3) || (#1 > 3 && #2 > 3) & ]

Out[2]=
{{1, 3, 2}, {6, 4, 7, 5}, {1}, {7}}

Regards,
Jean-Marc


  • Prev by Date: Re: Roman Numerals
  • Next by Date: Re: NonLinearRegression Weights
  • Previous by thread: Re: split
  • Next by thread: Re: split