Re: Length of monotonic sequencies
- To: mathgroup at smc.vnet.net
- Subject: [mg33581] Re: Length of monotonic sequencies
- From: "Allan Hayes" <hay at haystack.demon.co.uk>
- Date: Tue, 2 Apr 2002 03:36:29 -0500 (EST)
- References: <a89191$pah$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
merkat, Here are some ideas - it might be possible ot tune the splitting condition to get closer to what you want. e1 = {2, 3, 4, 2, 5, 6, 5, 3, 2, 1, 1}; n = 1; e2 = Split[Partition[e1, 2, 1], (#1 <= n && #2 <= n || #1 > n && #2 > n & )[ Subtract @@ #1, Subtract @@ #2] & ] {{{2,3},{3,4}},{{4,2}},{{2,5},{5,6},{6,5}},{{5,3}},{{3,2},{2,1},{1,1}}} (Join[First[#1], Last /@ Rest[#1]] & ) /@ e2 {{2,3,4},{4,2},{2,5,6,5},{5,3},{3,2,1,1}} -- Allan --------------------- Allan Hayes Mathematica Training and Consulting Leicester UK www.haystack.demon.co.uk hay at haystack.demon.co.uk Voice: +44 (0)116 271 4198 Fax: +44 (0)870 164 0565 "merkat" <cabanc at hotmail.com> wrote in message news:a89191$pah$1 at smc.vnet.net... > Hi > > I want to get the lengths of the monotonic rising and falling parts > in a list l. > > for this I can use: > > Drop[RotateRight[l] - l, 1]; > % /. x_ /; x > 0 -> 1 ; > % /. x_ /; x < 0 -> -1 ; > Split[%] > Length /@ % > > I want to include the case of no change in the sequence values which > makes the seqence longer. (flat progression) > I further want to relax the condition of monotonicity by allowing > shallow drops in the sequences. > > for a drop of one unit: > { 2,3,2,3,4,3,5,3,4,3,7} gives {7,4} > > for a drop of 2 units: > {2,3,4,2,5,6,5,1} gives {7,1} > > how can the code be written for an arbitrary drop? > > Merkat >