【Matlab】在Java中調用matlab函數

考慮到計算的各種情況,有些用Java代碼實現的計算難免會顯得不夠高效。而利用MATLAB寫好相應的計算函數,然後打包成jar包供Java調用,在某些情況下會更加方便。現在就來說一下如何實現這一過程:

1.確定配置好了相應的環境

首先,要確定你電腦上裝好了MATLAB並且配置好了Java的運行環境,注意,MATLAB的版本必須是2006b+(包括2006b或更高版本),因爲只有在這些版本中才有MATLAB Builder for Java(也叫Java Builder)。

2.打包步驟

a)打開MATLAB(筆者用的是MATLAB 2012b,版本的一些差異我會在後面註明),在Command Window框中輸入deploytool,會跳出如下界面:


b)在Name中輸入名字,在Location中選擇路徑,最後在Type中選擇Java Package:



可能在有些版本中選擇Type時顯示的是Matlab Builder for Java,並且在Deployment Tool面板中還有Generate Verbose Output選項框,勾選上它,針對不同的版本時可能有一些出入,大家多留心一些,自己多嘗試嘗試。

c)在MATALAB的Editor中新建一個m文件,這裏編輯一個簡單的加法函數add並保存:



d)在MATLAB中找到Java Package窗口,添加class文件,命名這個class文件的時候要注意了,因爲這個文件就是以後導入到Java中要作爲一個對象的名字,也就是說它就是放在new後面作爲構造函數的類名。這裏命名爲matlabAdd:


e)然後點類名下的Add files,將剛纔編輯好的m文件add.m加到matlabAdd當中。


f)接着就可以打包了,還是在Java Package窗口找到,點擊就可以打包了。等打包好,就可以調用了。

3.調用打包好的matlab函數

a)在MATLAB安裝的目錄中找到"...\toolbox\javabuilder\jar\javabuilder.jar"的文件,並在你剛纔打包的文件夾中找到對應的包,本例中是firstOne.jar,然後將這兩個jar包導入到你的Java項目當中。



b)新建JAVA類文件MJBuilderTest.java,示例代碼如下:

import com.mathworks.toolbox.javabuilder.*;
import myadd.*;

class MJBuilderTest
{
public static void main(String[] args)
{
MWNumericArray a = null;
MWNumericArray b = null;
Object[] result = null;
Myadd myAdd = null;
try
{

if (args.length != 2)
{
System.out.println("Error: must input 2 numbers!");
return;
}


a = new MWNumericArray(Double.valueOf(args[0]),MWClassID.DOUBLE);
b = new MWNumericArray(Double.valueOf(args[1]),MWClassID.DOUBLE);

myAdd = new Myadd();


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章