chickadee » matlab

Outdated egg!

This is an egg for CHICKEN 4, the unsupported old release. You're almost certainly looking for the CHICKEN 5 version of this egg, if it exists.

If it does not exist, there may be equivalent functionality provided by another egg; have a look at the egg index. Otherwise, please consider porting this egg to the current version of CHICKEN.

This page is maintained in the this package's github repository.

matlab

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.

Example

  (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.

High-level API

matlab-eval-string sprocedure
matlab-eval-strings #!rest stringsprocedure
matlab #!rest stringsprocedure

Execute one or more strings. (matlab . strings) returns the output of the command as a string. The return value of the other two calls is unspecified. These commands will start up an engine automatically if needed.

matlab-append-to-path directoryprocedure

Performs an addpath.

matlab-load-variables filenameprocedure
matlab-save-variables filename #!rest variablesprocedure

Performs a load or a save. Saves the entire workspace if no variables are provided.

start-matlab!procedure

Starts the Matlab engine. Note that calling this function multiple times has no effect.

matlab->scheme variable-nameprocedure

Marshal a variable from Matlab to scheme. Only supports arrays and strings.

scheme->matlab! variable-name objectprocedure

Assign to a Matlab variable. Only supports matrices, vectors, and lists.

Low-level API

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 argumentsprocedure
matlab-stop engineprocedure

Start or stop an engine.

matlab-set-visible engine visible?procedure
matlab-get-visible engine visible?-pointerprocedure

Get and set if the visibility of the Matlab UI.

*default-matlab-engine-command*parameter

The parameters to use when starting the global Matlab engine. Currently -nosplash -nodesktop. If you wish to add to these variables you can use the environment variable MATLAB_LOCAL_ARGS

*matlab-engine*constant

The current matlab engine.

License

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.

Contents »