1.MATLAB中新建script,輸入如下內容
%畫圖 自定義函數drawplot 參數 x y
function drawplot(x, y)
plot(x, y); %%使用matlab函數plot()作圖
grid on %網格顯示
xlabel('X軸值')
ylabel('Y軸值')
title('Java調用MatLab作圖例子')
保存,本例保存目錄爲E:\Workspaces\matlab\test
2.在MATLAB的Command Window輸入deploytool命令(MATLAB版本:R2016a)
選擇Library Compiler,在彈出的窗口選擇Java Package,輸入Library name,Class name輸入plotter(java類,在後邊java代碼中會用)。點擊加號按鈕,添加剛纔的drawplot.m文件
完成之後,點擊右上角的package
3.打開MyEclipse,新建project命名爲mjTest,引用兩個jar包:D:\Program Files (x86)\MATLAB\R2016a\toolbox\javabuilder\jar下面的javabuilder.jar和上一步生成的demo.jar
新建ConnectMatlabTest.java
package mjTest;
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 As--Java Application