Re: Delete elements from list..
- To: mathgroup at smc.vnet.net
- Subject: [mg116643] Re: Delete elements from list..
- From: James Stein <mathgroup at stein.org>
- Date: Tue, 22 Feb 2011 04:45:25 -0500 (EST)
This would be fast enough for me: Clear[makeMonotone]; makeMonotone[ inL_List ] := Module[{i = 1, len, outL, x}, If[(len = inL // Length) == 0, Return[ {} ], outL = {inL[[1]]}]; While[++i <= len, If[(x = inL[[i]]) > outL[[1]], outL = {x, outL} ]]; Reverse[Flatten[outL]] ]; mylist = {1, 2, 3, 4, 5, 6, 4, 5, 7, 8, 9}; makeMonotone[mylist] makeMonotone[{}] makeMonotone[{1}] makeMonotone[{2, 2, 2, 2, 2}] makeMonotone[{1, 2, 1, 2, 1, 2, 3}] On Mon, Feb 21, 2011 at 4:30 PM, Maarten van der Burgt < Maarten.VanDerBurgt at kla-tencor.com> wrote: > Hallo, > > I have a list like: > > mylist = {1, 2, 3, 4, 5, 6, 4, 5, 7, 8, 9} > > I want to delete any element which is not strictly larger than the > previous element, until my new list has only increasing values. > > This means in mylist above I want to delete the 4 and the 5 at position > 7 and 8. > > Any elegant and fast way for doing this? > > In practice I want to do this for a large amount (1000) of very large > lists (1000). So speed is important. > > Thanks for your help. > > Maarten >