本文主要讲述使用Java程序调用Matlab画图的步骤。
1、编写Matlab绘图程序
functiondrawzhexiantu(x,y)%绘图
plot(x_real, y_real, '--*b'); %线性,颜色,标记
%设置标题
title([ceshileixing,ceshifangshi,ganraoleixing,'测试结果']);
legend('真实值','测试值'); %右上角标注(图例)
xlabel('东方向') %x轴坐标描述
ylabel('北方向') %y轴坐标描述
grid on; %网格线
把程序保存为drawzhexiantu.m
2、在matlab控制台输入deploytool,在出现的如下界面选择Linrary Compiler
3、选择Linrary Compiler后出现如下界面:
(1)在上图中的TYPE栏中选择Java Package,在EXPORTED FUNCTIONS栏中点击右侧的加号,选择刚刚写好的.m文件选择,这里选择刚刚编好的drawzhexiantu.m文件。
(2)选择好之后会看到Library Name栏会自动填充对应的jar名称。
(3)双击Class Name栏,修改类的名称为Draw。
(4)最后,点击右上方的Package即可生成对应的jar。
上述步骤如图:
打包成功后界面如下图,同时在对应的目录下生成了drawzhexiantu目录,在文件夹中有对应的drawzhexiantu.jar
4、创建java程序调用打包的jar:
创建Java Project,导入drawzhexiantu.jar和matlab安装目录下的javabuilder.jar,在对应的程序如下:
public class PlotTest {
public static void main(String[] args) {
System.out.println( System.getProperty("java.library.path"));
// TODO Auto-generated method stub MWNumericArray x = null; // 存放x值的数组 MWNumericArray y = null; // 存放y值的数组 Draw draw = null;
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();
draw = new Draw();
// 作图 draw.drawzhexiantu(x, y, x, y, "", "", "");
draw.waitForFigures();
}
catch (Exception e) {
System.out.println("Exception: " + e.toString());
}
finally {
// 释放本地资源 MWArray.disposeArray(x);
MWArray.disposeArray(y);
if (thePlot != null)
thePlot.dispose();
}
}
}
5、运行效果
注:本图与前面写的matlab程序相比多加了一条曲线
有问题欢迎留言。
参考资源:
欢迎关注本人微信公众号
一起学习,共同进步!