Re: finding the position of a pattern in list
- To: mathgroup at smc.vnet.net
- Subject: [mg64640] Re: [mg64583] finding the position of a pattern in list
- From: Pratik Desai <pdesai1 at umbc.edu>
- Date: Fri, 24 Feb 2006 00:19:47 -0500 (EST)
- References: <200602230534.AAA13180@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
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 >strin > Here is what I tried using Reap and Sow, although it does not use any pattern matching Reap[Table[If[list1[[r]]-list1[[r+1]]===-1,Sow[r]],{r,1,Length[list1],1}]][[2]]//Flatten In[1]:= list1= {0,0,1,1,1,0,0,1,1,1,0} Reap[Table[If[list1[[r]]-list1[[r+1]]===-1,Sow[r]],{r,1,Length[list1],1}]][[2]]//Flatten Out[1]= {0,0,1,1,1,0,0,1,1,1,0} Out[2]= {2,7} Hope this helps Pratik
- References:
- finding the position of a pattern in list
- From: Gang Ma <contactmagang@gmail.com>
- finding the position of a pattern in list