How to use Morph-M with Matlab

Note that it is an alpha version module so a lot of Morph-M functions are not available...

Introduction

The Matlab capabilities can be extended through domain specific software packages called Matlab toolboxes. A typical Matlab toolbox is a directory structure which contains new data structures and function definitions that extend Matlab's capabilities to a new science or engineering area. A Matlab toolbox user simply copies the toolbox directory structure and tells Matlab where the toolbox is located. The toolbox defined functions and datatypes then become available from Matlab. Java is very extensively supported in Matlab. Since we have Java wrappers in Morph-M, we can quickly get access to all of Morph-M in Matlab using the Java wrappers.

Setting up Java-Wrapped Morph-M in Matlab

Current Version:

  • Matlab 7.04(R14)
  • Java 1.6
  • Morph-M 2.6

Before starting, make sure that Java Virtual Machine of Matlab is the same as Java-Wrapped Morph-M. If not, go to the settings and Compabilities problems section.

Step 1 :

We need to tell Matlab where to find the Java class files for Morph-M and the Matlab load library work-around. This can be done dynamically from the Matlab command prompt, but these commands will need to be applied each time Matlab is started:

javaaddpath('insert-your-path-to-the-Morph-M-build-directory-here/bin/Morpheejava.jar')
javaaddpath('insert-your-path-to-the-directory-containing-LoadLibrary.class-here');

There are two alternatives for a permanent addition to the Matlab Java class path.

  • The first method requires root or administrative access to the Matlab installation on your system (if Matlab is installed in your local Unix directory you can also use this method). This change will apply to all users who access this Matlab installation. as root (Unix) or as an account with administrator priveledges (Windows), execute the following from within Matlab, or directly edit the classpath.txt file with any text editor: edit([matlabroot '/toolbox/local/classpath.txt']);
  • The second method is to modify a local copy of the classpath.txt file in the local users Matlab startup directory. Make a copy of $matlabroot/toolbox/local/classpath.txt into your Matlab startup directory and edit that copy (on Unix the Matlab startup directory is in your home directory under .matlab/R2008a).
  • For the both methods, Add the following lines to your classpath.txt (system or local copy):
insert-your-path-to-Morph-M-build-directory/Morpheejava.jar
insert-your-path-to-the-directory-containing-LoadLibrary.class-here

Step 2 :

Next, we need to tell Matlab where to find the dynamic libraries for Morph-M by editing librarypath.txt. Again, there are two options:
  • Option one requires root or administrator priveledges and changes the Matlab search path for all users of the Matlab installation. As root (Unix) or as an account with administrator priveledges (Windows), directly edit the librarypath.txt file with any text editor: edit([matlabroot '/toolbox/local/librarypath.txt']); . Then, Add the following line to librarypath.txt : path-to-the-Morph-M-build-directory (e.g: $matlabroot/morphm/dll)
  • Options two modifies a local copy of librarypath.txt file and applies to the local user. Make a copy of $matlabroot/toolbox/local/librarypath.txt your Matlab startup directory and edit that copy (on Unix the Matlab startup directory is in your home directory under .matlab/R2008a). Add the following line to librarypath.txt : path-to-the-Morph-M-build-directory (e.g: /usr/local/lib/morphm or d:/morphm/bin)

Using Java-Wrapped Morph-M within Matlab

In order to use Morph-M stuff in Matlab, first execute

LoadLibrary.loadLibrary('Morpheejava');

All functions available are loaded, Now we are ready to go. You can see a lot of examples Here.

Settings and Compabilities problems

Which JVM version is in Matlab ??

You just need to execute this following line in Matlad command Prompt:

 version -java 

Matlab JVM version is not the same as Morph-M. How can I change it ??

if you would like to use a different version of JVM than the default used in MATLAB, Matlab support provide an easy method here
Note:

  • JVM 1.3.1 for MATLAB 6.5.1 (R13SP1)
  • JVM 1.4.2 for MATLAB 7.0.1 (R14SP1)
  • MATLAB 7.0.4 (R14SP2) and later versions use JVM 1.5. There are components that may not work properly under a different version of the JVM.
  • MATLAB 7.4 (R2007a) and later versions use JVM 1.6

The Java "loadlibrary" command doesn't work

This is a Matlab bug. you can find a work-around here

Matlab_Intro.PNG (19.7 KB) Serge Koudoro, 12/29/2008 02:37 PM