I'm sure I'm not fully understanding it myself but, would this help?
(defun AT:MidOfPoints (lst / l)
;; Middle point of list of points
;; lst - list of points
;; Alan J. Thompson, 03.23.11
(if (>= (setq l (length lst)) 2)
(mapcar (function (lambda (i) (/ i l))) (apply (function mapcar) (cons (function +) lst)))
)
)
return:
Command: (at:midofpoints '( (1. 1. 1.) (2. 2. 2.) (3. 3. 3.)(5. 5. 5.)))
(2.75 2.75 2.75)