Here's how I'd do it. Starting with diffcoord diffcoord = {{2.87796, 29.2153}, {-13.6571, -19.1573}, {2.9201, 8.7201}, {3.52192, -16.1424}, {0.53561, 19.1832}, {3.76663, 3.32865}, {-11.0295, -10.1585}, {14.9637, 19.0262}, {-12.4468, -28.5079}}; Pair each element with the next and Dot the pairs. Dot@@@(Transpose@{diffcoord[[1;;-2]],diffcoord[[2;;-1]]}) The output is {-598.991, -206.934, -130.479, -307.777, 65.8716, -75.3581, -358.32, -728.647} There is certainly a more clever way to combine the two if you need to do this on huge lists, but this makes sense to me. Edit: @Guess who it is reminded me that `Partition` has a 3rd argument to specify an offset, which makes this a lot nicer looking! Dot@@@Partition[diffcoord,2,1]