Re: position of sequence of numbers in list
- To: mathgroup at smc.vnet.net
- Subject: [mg116215] Re: position of sequence of numbers in list
- From: "Mr. Wizard" <gleam at flashmail.com>
- Date: Sun, 6 Feb 2011 05:37:39 -0500 (EST)
>I just found another way that outperforms both of our solutions on a >wide range of integer arrays I tested. It turns out that one can >extract the position directly from SparseArray, without using >ArrayRules. It took me some time to figure it out: > >extractPositionFromSparseArray[ > HoldPattern[SparseArray[u___]]] := {u}[[4, 2, 2]] > >positionExtr[x_List, n_] := > Flatten@extractPositionFromSparseArray[ > SparseArray[1 - Unitize[x - n]]] > >Again, no unpacking. > >Best, >Norbert Oliver Ruebenkoenig recently gave an easier way to get these values in the thread "Fast matrices comparison" started January 25th, 2011. SparseArray[{0, 1, 0, 0, 1, 0, 1, 1, 0, 0}]["NonzeroPositions"] SparseArray[{1}]["Properties"] Paul