A bridge to OCTAVE


The goal of this project is to provide a link between the Octave programming language and Common-Lisp.

In signal and image processing tasks, octave/matlab is often use due to the presence of the toolboxes. Lots of users have developped their own codes. The goal of this project is to allow octave/matlab users to gently migrate to common-lisp without a complete rewritting of their code. With this package, you can :

The proposed package is running under cmucl. I need some little work to get a portable version.

Some exemple codes:

;; send a scalar
(set/octave "a" 1)              

;; receive the contents of any variable
(get/octave "a")                

;; arrays (of single-floats or double-floats)
(set/octave "b" #(1.0 2.0 3.0)) 

;; receive an array with double-float elements
(get/octave "b" :element-type 'double-float)

;; send a complex number
(set/octave "c" #c(1 2))

;; funcall an octave function
(funcall/octave "conv" #(1.0 2.0 3.0 2.0 1.0) #(-1.0 1.0))

;; execute an octave function. (equivalent of a funcall with :nargout 0)
(exec/octave "plot" #(1.0 2.0 3.0 2.0 -10.0))

;; funcall an octave with multiple output arguments
(multiple-value-list (funcall/octave "cart2pol" 1 1 :nargout 2))

Mailing Lists


This project can be downloaded here :


You can browse our CVS repository or download the current development tree via anonymous cvs, as described here

Valid XHTML 1.0 Strict