Matrix transposition: Difference between revisions
→{{header|Common Lisp}}: Transpose a matrix given as a array.
(→{{header|Common Lisp}}: Transpose a matrix given as a array.) |
|||
Line 603:
=={{header|Common Lisp}}==
<lang lisp>
(defun transpose (m)
(apply #'mapcar #'list m))</lang>
If the matrix A is given as a 2D array:
<lang lisp>
;; Transpose a mxn matrix A to a nxm matrix B=A'.
(defun mtp (A)
(let* ((m (car (array-dimensions A)))
(n (cadr (array-dimensions A)))
(B (make-array `(,n ,m) :initial-element 0)))
(loop for i from 0 to (- m 1) do
(loop for j from 0 to (- n 1) do
(setf (aref B j i)
(aref A i j))))
B))</lang>
=={{header|D}}==
|