一 注意事項
1: MatLab的版本必須是2006b+(包括2006b或更高版本),因為只有在這些版本中才有MATLAB Builder for Java(也叫Java Builder)。
2: 運行機器上必須裝有JRE 並且版本要和MatLab自帶的jre 大版本保持一致(位數也要保持一致)(大版本一致既可,比如同是1.6,或者1.7既可)
查看MatLab 自帶JRE版本位數方法:在MatLab中Command Windows中輸入 【version -java】 命令查看。如圖所示:

這里是 1.6.0_17-b04 版本的JRE 並且為64位的。(注意:這里之所以是64位的,取決於您當初下載的MatLab安裝包的位數。
3:驗證系統jdk jre,系統首先裝有Java環境(不在敘述)。 驗證jdk,jre版本位數。打開cmd 輸入命令 【java -version】
二 調用基本步驟
1:打開MatLab,HOME -》 新建腳本 打開Editor窗口。腳本內容如下:
%畫圖 自定義函數drawplot 參數 x y
function drawplot(x, y)
plot(x, y); %%使用matlab函數plot()作圖
grid on %網格顯示
xlabel('X軸值')
ylabel('Y軸值')
title('Java調用MatLab作圖例子')
2:在計算機某個目錄建個存放MatLab腳本及其后期編譯出的java文件。例如:桌面\mjTest。保存腳本到此文件夾下。保存后,
在mjTest文件夾下多了一個drawplot.m文件。
3:在MatLab下Command Window下輸入 【deploytool】 命令,打開部署工具Deployment Tool。新建一個工程demo.prj,設置路徑為mjTest
既可,類型選擇Java Package 點擊確定。這時MatLab右側自動打開了java部署窗口。

4: 選擇Liberary Compiler
TYPE: java package
EXPORTED: 選擇drawplot.m
修改類名為:Plotter
點擊 package
文件夾下面會多出剛才的工程,里面有我們要要用的jar(xxx.jar)


5: 新建工程並導包
在idea下新建工程:javaMatlab
libs文件夾下有兩個依賴包:
---xxx.jar
---javabuilder,jar (在matlab安裝目錄\toolbox\javabuilder\jar\jarbuilder.jar)

6: 新建ConnectMatLabTest.java:
package com.xiami.test;
import com.mathworks.toolbox.javabuilder.MWArray;
import com.mathworks.toolbox.javabuilder.MWClassID;
import com.mathworks.toolbox.javabuilder.MWComplexity;
import com.mathworks.toolbox.javabuilder.MWNumericArray;
import demo.plotter;
public class ConnectMatLabTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MWNumericArray x = null; // 存放x值的數組
MWNumericArray y = null; // 存放y值的數組
plotter thePlot = null; // plotter類的實例(在MatLab編譯時,新建的類)
int n = 20; // 作圖點數
try {
// 分配x、y的值
int[] dims = { 1, n };
x = MWNumericArray.newInstance(dims, MWClassID.DOUBLE,
MWComplexity.REAL);
y = MWNumericArray.newInstance(dims, MWClassID.DOUBLE,
MWComplexity.REAL);
// 定義 y = x^2
for (int i = 1; i <= n; i++) {
x.set(i, i);
y.set(i, i * i);
}
// 初始化plotter的對象
thePlot = new plotter();
// 作圖
thePlot.drawplot(x, y);
thePlot.waitForFigures();
}
catch (Exception e) {
System.out.println("Exception: " + e.toString());
}
finally {
// 釋放本地資源
MWArray.disposeArray(x);
MWArray.disposeArray(y);
if (thePlot != null)
thePlot.dispose();
}
}
}
運行此類既可看到效果(Run -》 javaapplication),如下圖所示:


