考慮到計算的各種情況,有些用Java代碼實現(xiàn)的計算難免會顯得不夠高效,。而利用MATLAB寫好相應(yīng)的計算函數(shù),,然后打包成jar包供Java調(diào)用,在某些情況下會更加方便?,F(xiàn)在就來說一下如何實現(xiàn)這一過程:
1.確定配置好了相應(yīng)的環(huán)境
首先,要確定你電腦上裝好了MATLAB并且配置好了Java的運(yùn)行環(huán)境,,注意,,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文件,,這里編輯一個簡單的加法函數(shù)add并保存:
d)在MATLAB中找到Java
Package窗口,,添加class文件,命名這個class文件的時候要注意了,,因為這個文件就是以后導(dǎo)入到Java中要作為一個對象的名字,,也就是說它就是放在new后面作為構(gòu)造函數(shù)的類名,。這里命名為matlabAdd:
e)然后點類名下的Add
files,將剛才編輯好的m文件add.m加到matlabAdd當(dāng)中,。
f)接著就可以打包了,,還是在Java Package窗口找到,點擊就可以打包了,。等打包好,,就可以調(diào)用了。
3.調(diào)用打包好的matlab函數(shù)
a)在MATLAB安裝的目錄中找到"...\toolbox\javabuilder\jar\javabuilder.jar"的文件,并在你剛才打包的文件夾中找到對應(yīng)的包,,本例中是firstOne.jar,,然后將這兩個jar包導(dǎo)入到你的Java項目當(dāng)中。
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();
|