MathGroup Archive 2010

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

Search the Archive

Re: First nonzero in list

  • To: mathgroup at smc.vnet.net
  • Subject: [mg110869] Re: First nonzero in list
  • From: "Carl K. Woll" <carlw at wolfram.com>
  • Date: Thu, 8 Jul 2010 20:35:47 -0400 (EDT)

On 7/8/2010 2:13 AM, S. B. Gray wrote:
> I have lists such as
>
> th = {227, 342, 527, 0, 670, 730, 703, 0, 0, 649, 687, 614, 570, 501,
>     462, 402, 325, 254, 189, 99, 81, 36, 9, 8, 3, 0, 0, 0, 0, 0, 0, 0,
>     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
>      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
>
> and I want to find the position of the last nonzero element (e.g. 3 at
> position 25). Trivial, but some poking around did not reveal a neat way.
>
> Anyone? Thank you.
>
> Steve Gray
>
>    

One can use SparseArray to do this:

In[46]:= SparseArray[th] /.  SparseArray[_, _, _, {_, {_, pos_}, _}] :> 
pos[[-1, 1]]

Out[46]= 25

Carl Woll
Wolfram Research


  • Prev by Date: Re: Problem with a diagram
  • Next by Date: Re: First nonzero in list
  • Previous by thread: Re: First nonzero in list
  • Next by thread: Re: First nonzero in list