Matrix transposition: Difference between revisions

Content added Content deleted
Line 643: Line 643:
<lang lisp>;; Transpose a mxn matrix A to a nxm matrix B=A'.
<lang lisp>;; Transpose a mxn matrix A to a nxm matrix B=A'.
(defun mtp (A)
(defun mtp (A)
(let* ((m (car (array-dimensions A)))
(let* ((m (array-dimension A 0))
(n (cadr (array-dimensions A)))
(n (array-dimension A 1))
(B (make-array `(,n ,m) :initial-element 0)))
(B (make-array `(,n ,m) :initial-element 0)))
(loop for i from 0 to (- m 1) do
(loop for i from 0 below m do
(loop for j from 0 to (- n 1) do
(loop for j from 0 below n do
(setf (aref B j i)
(setf (aref B j i)
(aref A i j))))
(aref A i j))))