How do i fill in all of the elements of a matrix in Lisp?
in a forever loop(must be do* loop)
Code: Select all
j = 0
print a number at element 0x0
print a number at element 1x0
print a number at element 2x0
print a number at element 3x0
print a number at element 4x0
j = 1
print a number at element 0x1
print a number at element 1x1
print a number at element 2x1
print a number at element 3x1
print a number at element 4x1
j = 2
print a number at element 0x2
print a number at element 1x2
print a number at element 2x2
print a number at element 3x2
print a number at element 4x2
j = 3
print a number at element 0x3
print a number at element 1x3
print a number at element 2x3
print a number at element 3x3
print a number at element 4x3
j = 4
print a number at element 0x4
print a number at element 1x4
print a number at element 2x4
print a number at element 3x4
print a number at element 4x4
Code: Select all
this is the code i'm trying to convert to use a 5x5 matrix it uses a vector now
Code: Select all
(let* ((vec (create-mat 1 4 +8uc1+))
(scalar (make-cv-scalar 0))
(window-name "Watch the vector change! - PTR-1D Example"))
(named-window window-name +window-normal+)
(move-window window-name 690 285)
(do* ((1d-elem-ptr 0)
(element 0))
((plusp (wait-key *millis-per-frame*)) nil)
(set-1d vec element scalar)
(setf 1d-elem-ptr (ptr-1d vec element))
(if (< (cffi:mem-ref 1d-elem-ptr :uchar) 255)
(progn
(incf (cffi:mem-ref 1d-elem-ptr :uchar) 1)
(setf scalar (make-cv-scalar (cffi:mem-ref 1d-elem-ptr :uchar)))
(set-1d vec element scalar)
(show-image window-name vec)
(incf element)
(if (equal element 4) (setf element 0))
(format t "Now on ELEMENT ~a~%~%" element)
(format t "ID-ELEM-PTR = ~a~%~%"
(cffi:mem-ref 1d-elem-ptr :uchar)))
(progn
(setf (cffi:mem-ref 1d-elem-ptr :uchar) 0)
(setf scalar (make-cv-scalar (cffi:mem-ref 1d-elem-ptr :uchar)))
(set-1d vec element scalar))))
(release-mat vec)
(destroy-window window-name)))
Code: Select all
Code: Select all
Code: Select all
this dereferences the pointer to an int
Code: Select all
(
Code: Select all
Code: Select all
Code: Select all
Code: Select all
Code: Select all
Code: Select all
Code: Select all
Code: Select all
Code: Select all
Code: Select all
(j 0)
(if (< i 6)
(incf i) (setf i 4...but then i gets incremented again
(if (i < 6) (progn
(if (< j 6)....then my mind just goes blank I could use help wrapping my head around the process
Code: Select all
Code: Select all
Code: Select all
(mat (create-mat 5 5 +8uc1+))
and fill it up in a forever loop like i outlined above without writing big code if some one could help me with the logic on this one...I would really appreciate it
to help you understand
here is the code made for a matrix...i need to keep every thing the same but just change the
Code: Select all
(if (equal i 5) (setf i 0))
part
(defun ptr-2d-example ()
"This function changes the vector's elements visually using PTR-ID.
It's an amazing hint as how to have fun(and success) with math."
(let* ((mat (create-mat 5 5 +8uc1+))
(scalar (make-cv-scalar 0))
(window-name "Watch the vector change! - PTR-1D Example"))
(named-window window-name +window-normal+)
(move-window window-name 690 285)
(do* ((2d-elem-ptr 0)
(i 0)
(j 0))
((plusp (wait-key *millis-per-frame*)) nil)
(set-2d mat i j scalar)
(setf 2d-elem-ptr (ptr-2d mat i j))
(if (< (cffi:mem-ref 2d-elem-ptr :uchar) 255)
(progn
(incf (cffi:mem-ref 2d-elem-ptr :uchar) 1)
(setf scalar (make-cv-scalar (cffi:mem-ref 2d-elem-ptr :uchar)))
(set-2d mat i j scalar)
(show-image window-name mat)
(incf i)
(if (equal i 5) (setf i 0))
(format t "Now on ELEMENT ~ax~a~%~%" i j)
(format t "2D-ELEM-PTR = ~a~%~%"
(cffi:mem-ref 2d-elem-ptr :uchar)))
(progn
(setf (cffi:mem-ref 2d-elem-ptr :uchar) 0)
(setf scalar (make-cv-scalar (cffi:mem-ref 2d-elem-ptr :uchar)))
(set-2d mat i j scalar))))
(release-mat mat)
(destroy-window window-name)))
Code: Select all
i tried
Code: Select all
(progn (incf i)
; (incf j)
)
(progn
(setf i 0)
(if (< j 6) (incf j) (if (not (equal j -1)) (decf j)))))
Code: Select all
I'm just outta ideas on this and i could use help getting this done...it will help me break into using better logic in my progams and get me ready for A.I. research
I would appreciate any help on this