This Chicken egg provides matlab bindings. It makes matlab somewhat bearable. See matlab-example.scm for how a quick example. Note that this egg doesn't at the moment deal well with Matlab errors and it currently only supports marshalling lists, vectors and matrices of doubles.
(matlab "'hello'") (matlab "a=2+2") (matlab-get-variable "a") (scheme->matlab! "a" '(3)) (matlab-get-variable "a")
(with-matlab-default-output-buffer (lambda (matlab-result-string) (matlab-eval-string "A=[[1,2,3];[4,5,6]]") (matlab-eval-string "B='Hi'") (matlab-eval-string "C=1") (matlab-show-variable "A") (matlab-show-variable "B") (matlab-show-variable "C") (matlab-eval-string "D=randn(2,2,2,2)") (display (matlab-result-string)) (matlab-show-variable "D") (matlab-eval-string "'Can also get the output from matlab'") (display (matlab-result-string)) (newline)))
This does a few random things in matlab to show off the API.
- (matlab-eval-string s)
- (matlab-eval-strings . strings)
- (matlab . strings)
- (matlab-append-to-path directory)
- (matlab-load-variables filename)
- (matlab-save-variables filename . variables)
- (matlab->scheme variable-name)
- (scheme->matlab! variable-name object)
Many internal low-level functions for dealing with Matlab exist but they are of interest only to developers. Only those that may be of interest to users are listed here.
- (matlab-start arguments)
- (matlab-stop engine)
- (matlab-set-visible engine visible?)
- (matlab-get-visible engine visible?-pointer)
Copyright 2013 Andrei Barbu. All rights reserved. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see http://www.gnu.org/licenses.