本文主要讲述使用Java程序调用Matlab画图的步骤。

1、编写Matlab绘图程序

function drawzhexiantu(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; // 作图点数

// 分配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());

// 释放本地资源

MWArray.disposeArray(x);

MWArray.disposeArray(y);

if (thePlot != null)

thePlot.dispose();

5、运行效果

注:本图与前面写的matlab程序相比多加了一条曲线

有问题欢迎留言。

一起学习,共同进步!