Re: List manipulation question

*To*: mathgroup at smc.vnet.net*Subject*: [mg67196] Re: List manipulation question*From*: Peter Pein <petsie at dordos.net>*Date*: Sun, 11 Jun 2006 23:08:04 -0400 (EDT)*References*: <e6ge0k$nh3$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

LectorZ schrieb: > Dear experts, > > 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} > > Thanks a lot for your help > > LZ > try diff=Flatten[{list[[2]]-list[[1]],(Drop[list,2]-Drop[list,-2])/2,list[[-1]]-list[[-2]]}] or diff2=Flatten[Insert[(Rest[list]-Most[list])[[{1,-1}]],(Drop[list,2]-Drop[list,-2])/2,2]]; Peter