Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2006
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2006

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Re: finding the position of a pattern in list

  • To: mathgroup at smc.vnet.net
  • Subject: [mg64617] Re: Re: [mg64583] finding the position of a pattern in list
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Fri, 24 Feb 2006 00:18:12 -0500 (EST)
  • Reply-to: hanlonr at cox.net
  • Sender: owner-wri-mathgroup at wolfram.com

Here is a faster method than the one that I first suggested.

pos1[data_]:=Position[Partition[data,2,1],{0,1}]//Flatten;

pos2[data_]:=Position[RotateLeft[data]-data,1]//Flatten;

data=Table[Random[Integer],{100000}];

pos1[data]==pos2[data]

True

Timing[pos1[data]][[1]]

0.39032 Second

Timing[pos2[data]][[1]]

0.128189 Second


Bob Hanlon

> 
> From: Bob Hanlon <hanlonr at cox.net>
To: mathgroup at smc.vnet.net
> Subject: [mg64617] Re: [mg64583] finding the position of a pattern in list
> 
> data={0,0,1,1,1,0,0,1,1,1,0};
> 
> Position[Partition[data,2,1],{0,1}]//Flatten
> 
> {2,7}
> 
> 
> Bob Hanlon
> 
> > 
> > From: Gang Ma <contactmagang at gmail.com>
To: mathgroup at smc.vnet.net
> > Subject: [mg64617] [mg64583] finding the position of a pattern in list
> > 
> > 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
> > 
> >   
> > 
> > 
> 


  • Prev by Date: 3D Graphics suggestions?
  • Next by Date: Re: Re: Can't multiply non-square matrices.
  • Previous by thread: Re: finding the position of a pattern in list
  • Next by thread: Re: finding the position of a pattern in list