Re: List manipulation question
- To: mathgroup at smc.vnet.net
- Subject: [mg67205] Re: List manipulation question
- From: Bill Rowe <readnewsciv at earthlink.net>
- Date: Sun, 11 Jun 2006 23:08:32 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
On 6/11/06 at 2:17 AM, lectorz at mail.ru (LectorZ) wrote: >I need to calculate distances between the elements of the following >list: >list={3700, 3800, 3900, 3950, 4000, 4050, 4100, 4150, 4200, 4250, >4300, 4350, 4400, 4450, 4500, 4550, 4600, 4650} >with the following logic: >a) If it is the first element, then take the simple difference to >the next (i.e. 3800 - 3700) >b) If it is the last element, then take the simple difference to the >second last (i.e. 4650 -4600) >c) the difference for all elements in between shoud be calculated as >(next - last)/2 (i.e. (3900 - 3700)/2) >This list should come out as a result: >result={100,100,75,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50} Your c) doesn't quite make sense to me. 3700 appears once as the first element. I don't see how to equate 3700 with "last". In any case, I can get the same result as you show with In[19]:= Flatten@{-Subtract@@Take[list,2],Subtract@@@Partition[list,3,1][[ All,{3,1}]]/2,-Subtract@@Take[list,-2]} Out[19]= {100,100,75,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50} -- To reply via email subtract one hundred and four