Re: position of sequence of numbers in list
- To: mathgroup at smc.vnet.net
- Subject: [mg116230] Re: position of sequence of numbers in list
- From: Oliver Ruebenkoenig <ruebenko at wolfram.com>
- Date: Tue, 8 Feb 2011 05:03:20 -0500 (EST)
On Mon, 7 Feb 2011, Armand Tamzarian wrote:
> On Feb 6, 9:37 pm, "Mr. Wizard" <gl... at flashmail.com> wrote:
>>> 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
>
> I noted in his post that this stuff is undocumented. Hard to fathom
> why this would be. Wonder if this is a V8 thing or has been there
> since SparseArray was included.
>
> Oliver, if you're reading this, what other undocumented goodies can
> you show to the group?
>
> Mike
Mike,
I filed a suggestions that the functionality used here is going to be
documented. I can not, however, say if this will be approved and or when
this will happen.
Please also keep in mind to use undocumented functionality very cautiously
- there may be very good reasons that the functionality is undocumented; it
may not have been tested as much as needed.
Concerning "goodies", let's see what computational issues come up.
Oliver