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
本文介绍如何通过Java调用MATLAB进行图形绘制。首先在MATLAB中创建自定义绘图函数,并将其编译为Java类。接着,在Java环境中引入必要的MATLAB库和编译后的Java类,设置绘图数据并调用MATLAB函数完成绘图。
5158

被折叠的 条评论
为什么被折叠?



