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