Re: finding the position of a pattern in list
- To: mathgroup at smc.vnet.net
- Subject: [mg64615] Re: finding the position of a pattern in list
- From: dh <dh at metrohm.ch>
- Date: Fri, 24 Feb 2006 00:18:10 -0500 (EST)
- References: <dtjjcv$de7$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi, 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 Daniel Gang Ma wrote: > Hi, > I am working on a program to do the following: My data is a list of 0 > and 1. For example, {0,0,1,1,1,0,0,1,1,1,0}. I want to find the > positions of all the pattern of {0,1}. In my previous example, the > first {0,1} is at 2 and and the second {0,1} appears at 7. I can > write a loop to do this, but I have several thousands such lists, > the computation will be time consuming using loop. > > My question is whether it is possible to use the pattern match to do > this quickly. If not for the list, do I need to convert the list to > string then use some pattern match for string? Thank you very much. > > regards, > > Gang Ma > > >