RosettaCodeData/Task/Matrix-transposition/Common-Lisp/matrix-transposition-2.lisp

11 lines
345 B
Common Lisp

;; Transpose a mxn matrix A to a nxm matrix B=A'.
(defun mtp (A)
(let* ((m (array-dimension A 0))
(n (array-dimension A 1))
(B (make-array `(,n ,m) :initial-element 0)))
(loop for i from 0 below m do
(loop for j from 0 below n do
(setf (aref B j i)
(aref A i j))))
B))