add a function to transpose a matrix (suboptimal)

This commit is contained in:
Renaud Casenave-Péré 2014-11-02 15:58:12 +09:00
parent 21f45091d7
commit eaedaf8a35

View file

@ -53,6 +53,13 @@
do (setf (aref mat i i) (aref vec i))) do (setf (aref mat i i) (aref vec i)))
mat) mat)
(defun transpose (mat)
(let ((transposed (mat-null (array-element-type mat) (array-dimension mat 1) (array-dimension mat 0))))
(loop for i below (array-dimension mat 0)
do (loop for j below (array-dimension mat 1)
do (setf (aref transposed j i) (aref mat i j))))
transposed))
(defun add-mat (mat-a mat-b) (defun add-mat (mat-a mat-b)
(let* ((mat (mat-null (array-element-type mat-a) (array-dimension mat-a 0) (array-dimension mat-a 1))) (let* ((mat (mat-null (array-element-type mat-a) (array-dimension mat-a 0) (array-dimension mat-a 1)))
(len (array-total-size mat))) (len (array-total-size mat)))