Project

General

Profile

Morph-M Matlab - How to use Morph-M with Matlab » History » Revision 25

Revision 24 (Serge Koudoro, 12/29/2008 03:17 PM) → Revision 25/26 (Serge Koudoro, 12/29/2008 03:17 PM)

h1. How to use Morph-M with Matlab  

 bq. p=. %{color:#8B0000}Note that it is an alpha version module so a lot of Morph-M functions are not available...% 

 h2{color:#8B0000}. 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. 


 h2{color:#8B0000}. Setting up Java-Wrapped Morph-M in Matlab 

 *%{color:#006400}+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.   

 *%{color:#006400}+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*: 
 <pre> 
 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'); 
 </pre> 

 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): 

 <pre> 
 insert-your-path-to-Morph-M-build-directory/Morpheejava.jar 
 insert-your-path-to-the-directory-containing-LoadLibrary.class-here 
 </pre> 

 *%{color:#006400}+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) 

 h2{color:#8B0000}. Using Java-Wrapped Morph-M within Matlab 

 In order to use Morph-M stuff in Matlab, first execute 
 <pre>LoadLibrary.loadLibrary('Morpheejava');</pre> 

 !Matlab_Intro.png! 


 *All functions available are loaded, Now we are ready to go*. You can see a lot of examples [[Morph-M within Matlab Examples|Here]].   


 h2{color:#8B0000}. Settings and Compabilities problems 

 *%{color:#006400}+Which JVM version is in Matlab ??+%* 

 To know that, just execute this following linne in Matlad command Prompt: 
 <pre> version -java </pre> 

 *%{color:#006400}+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":http://www.mathworks.com/support/solutions/data/1-1812J.html?solution=1-1812J 
 +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 

 *%{color:#006400}+The Java "loadlibrary" command not work+%* 

 This is a Matlab bug. you can find a work-around "here":http://www.mathworks.com/support/solutions/data/1-1A2HO.html?solution=1-1A2HO