# 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 :**

**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