Re: finding the position of a pattern in list
- To: mathgroup at smc.vnet.net
- Subject: [mg64698] Re: finding the position of a pattern in list
- From: Paul Abbott <paul at physics.uwa.edu.au>
- Date: Tue, 28 Feb 2006 01:49:29 -0500 (EST)
- Organization: The University of Western Australia
- References: <dtjjcv$de7$1@smc.vnet.net> <dtm5j1$hf3$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
In article <dtm5j1$hf3$1 at smc.vnet.net>, dh <dh at metrohm.ch> wrote: > a simple solution would be to subtract adjacent elemnts and then search > for +1. > E.g.: > > d = {0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0}; > t = Drop[d, 1] - Drop[d, -1] > Position[t, 1] // Flatten A slight improvement is d = {0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0}; Position[ListConvolve[{1, -1}, d], 1] // Flatten This is faster than solutions using Partition. Cheers, Paul _______________________________________________________________________ Paul Abbott Phone: 61 8 6488 2734 School of Physics, M013 Fax: +61 8 6488 1014 The University of Western Australia (CRICOS Provider No 00126G) AUSTRALIA http://physics.uwa.edu.au/~paul