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