java调用matlab绘图
一 注意事项
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),如下图所示:

原文:https://www.cnblogs.com/welhzh/p/5782912.html
java调用matlab绘图的更多相关文章
- (转)JAVA 调用matlab
本文仅用于学习. 原文地址链接:http://blog.csdn.net/wannshan/article/details/5907877 前段时间摸索了java调用matlab东西,不说学的有多深, ...
- JAVA调用matlab代码
做实验一直用的matlab代码,需要嵌入到java项目中,matlab代码拼拼凑凑不是很了解,投机取巧采用java调用matlab的方式解决. 1. matlab版本:matlabR2014a ...
- java调用matlab生成exe文件
一.Matlab生成Java Package 1.在MATLAB的Command Window输入deploytool命令,选择Library Compiler. 2.在弹出的窗口选择Java Pac ...
- java调用matlab函数
如何将实验结果在matlab中可视化呢,下面使用java语言编程,调用matlab中的函数: 本人安装的是Matlab7.11.0 (R2010a)和 Eclipse 4.2 : 1)首先设置环境变量 ...
- 使用ecilpse(Java)调用Matlab代码
1 安装java环境: http://www.oracle.com/technetwork/java/javase/downloads/index.html 下载JDK最新版本并安装,CloudSim ...
- JAVA 调用matlab 出错总结
1.Java:Unsupported major.minor version 51.0 (unable to load class 出现该错误是由于class编译器的JDK版本高于运行期的JDK版本. ...
- eclipse调试java调用matlab程序的7.17dll找不到的问题
经过多次查找,这个问题本来很简单,在环境变量中CLASSPATH配置C:\MATLAB\R2012a\toolbox\javabuilder\jar\win64\javabuilder.jar 特别注 ...
- java调用matlab
object result[]; result = pClass1.job_3in1(2, c, ws2, 1275, a, 0); string adg[]; adg = result[1].toS ...
- 使用Java程序调用MatLab
Java代码实现的计算难免会显得不够高效.而利用MATLAB写好相应的计算函数,然后打包成jar包供Java调用,在某些情况下会更加方便.或者有些时候会涉及到使用Java调用MatLab展现一些二维三 ...
随机推荐
- c/c++ linux 进程间通信系列4,使用共享内存
linux 进程间通信系列4,使用共享内存 1,创建共享内存,用到的函数shmget, shmat, shmdt 函数名 功能描述 shmget 创建共享内存,返回pic key shmat 第一次创 ...
- HO6 Condo Insurance Policy
The HO6 insurance Policy is the most common type of policy used to insure town homes and condos in t ...
- RESTful API规范
1. 域名 应该尽量将API部署在专用的域名下. https://api.example.com 如果确定API简单,不会有进一步的括在,可以考虑放在主域名之下. https://example.or ...
- centos7下kubernetes(11。kubernetes-运行一次性任务)
容器按照持续运行的时间可以分为两类:服务类容器和工作类容器 服务类容器:持续提供服务 工作类容器:一次性任务,处理完后容器就退出 Deployment,replicaset和daemonset都用于管 ...
- golang web实战之一(beego,mvc postgresql)
想写个小网站,听说MVC过时了,流行MVVM,但是看了一下gin+vue+axios方式,发现还有一堆知识点要掌握,尤其是不喜欢nodejs和javascript方式的写法.算了,还是用beego来写 ...
- 26 python 初学(线程、同步锁、死锁和递归锁)
参考博客: www.cnblogs.com/yuanchenqi/articles/5733873.html 并发:一段时间内做一些事情 并行:同时做多件事情 线程是操作系统能够进行运算调度的基本单位 ...
- Autoware(2)—加载地图数据
选择Point cloud.Ref选择.autoware/.data/map/pointcloud_map/里面的全选 点Point cloud加载 vector Map和TF同理
- 在Web界面中实现Excel数据大量导入的处理方式
在早期Bootstrap框架介绍中,我的随笔<结合bootstrap fileinput插件和Bootstrap-table表格插件,实现文件上传.预览.提交的导入Excel数据操作流程> ...
- 数据标记系列——图像分割 & PolygonRNN++(二)
实践 1.export PATH=~/anaconda3/bin:$PATH 2.Anaconda3 中创建新环境 Conda create –name=labelme_polyrnn_pp pyth ...
- Python——Django目录说明
一.Django安装好后,建立djangosite的开发项目 #django-admin startproject djangosite 二.djangosite目录内容 ''' djangosite ...