java和matlab的交互实践--在java项目中调用matlab程序
本文主要解决了java项目中调用matlab程序过程中遇到的问题,下文主要分matlab的jar包部署以及java项目配置两个方面来分析。
1、matlab项目的部署 -- 生成jar包
保存matlab文件,生成.m文件
%画图 自定义函数drawplot 参数 x yfunction drawplot(x, y)plot(x, y); %%使用matlab函数plot()作图grid on %网格显示xlabel('X轴值')ylabel('Y轴值')title('Java调用MatLab作图例子')
app --> library Compiler
选择生成类型为java package ,添加.m文件,配置名称等信息生成
生成包中带有jar文件
2、java项目配置
修改环境变量,path添加matlab的dll文件路径。jdk的版本一定要和matlab匹配,否则执行会报 Failed to find the required library mclmcrrt9_4.dll on java.library.path 。
jdk1.8兼容2018a版本的matlab
注意:还需要配置的环境变量 JAVA_HOME -- jdk的安装路径,MATLAB_JAVA -- jre路径
把matlab生成的jar包引入java项目
引入固定的java调用matlab必备的jar包javabuilder
执行调用程序:
import com.mathworks.toolbox.javabuilder.*;
import drawplot.Class1;
public class map {public static void main(String[] args) {// TODO Auto-generated method stubMWNumericArray x = null; // 存放x值的数组MWNumericArray y = null; // 存放y值的数组Class1 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^2for (int i = 1; i <= n; i++) {x.set(i, i);y.set(i, i * i);}// 初始化plotter的对象thePlot = new Class1();// 作图thePlot.drawplot(x, y); //调用作图的matlab方法thePlot.waitForFigures();}catch (Exception e) {System.out.println("Exception: " + e.toString());}finally {// 释放本地资源MWArray.disposeArray(x);MWArray.disposeArray(y);if (thePlot != null)thePlot.dispose();}}
}
执行结果:
java和matlab的交互实践--在java项目中调用matlab程序相关推荐
- 网页中调用matlab,在C#的Web项目中调用Matlab代码的步骤
在C#的Web项目中调用Matlab代码的方法 为了毕设的图形检索方向的研究,本人需要在信科的师兄师姐们已经完成的C#界面中,调用现在研究的算法的Matlab代码,以便看到实验的效果.前段时间已经拖延 ...
- C/C++ VS中调用matlab函数的方法
C/C++ VS中调用matlab函数的方法 [尊重原创,转载请注明出处] http://blog.csdn.net/guyuealian/article/details/73743654 Matla ...
- java中调用matlab程序及相关问题
**在java中调用matlab程序,首先要将matlab程序打包成jar文件,才可以被java程序所调用. 打包时本人所用的各种工具: 1:myeclipse-bule 2:java-1.7 3:m ...
- Mac笔记本中是用Idea开发工具在Java项目中调用python脚本遇到的环境变量问题解决...
问题描述: mac笔记本本身会自带几个python版本,比如python2.7版本,我没有改动mac默认的python版本,只是安装了python3.7版本. 使用Pycharm开发Python项目没 ...
- java批量处理数据库语句_Java项目中调用bat批处理进行多用户数据库备份
Java项目中调用bat批处理配合使用BCP进行多用户数据的备份 一.项目需求 最近项目中需要对数据库(Sql Server系列数据库)进行备份.项目中的需求不是简单的整个数据库的备份,而是根据用户来 ...
- 【SpringBoot 中调用 Matlab】
java springBoot 中调用 Matlab软件 进行 二维矩阵计算 matlabcontrol_秋月丹青的博客-CSDN博客
- m 文件 dll matlab 中调用_如何在matlab中调用python程序
现在python很火,很多代码都是python写的,如果你和我一样,习惯了使用matlab,还想在matlab中调用Python的代码,应该怎么办呢?其中一条思路:首先在matlab中调用系统脚本命令 ...
- php调用python绘图程序_如何在matlab中调用python程序
现在python很火,很多代码都是python写的,如果你和我一样,习惯了使用matlab,还想在matlab中调用Python的代码,应该怎么办呢?其中一条思路:首先在matlab中调用系统脚本命令 ...
- python调用simulink_[Python-MATLAB] 在Python中调用MATLAB的API
可以参考官方的说明文档: MATLAB Engine API的使用文档: 原材料: 1.MATLAB 2015a 32位的 2.Python 2.7.13 32位的 安装: 1.运行cmd,切 ...
最新文章
- Scott的ASP.net MVC框架系列文章之四:处理表单数据(2)
- 在windows环境下基于sublime text3的node.js开发环境搭建
- svn的一些相关资料
- 计算机网络中st是什么,计算机组成中ST 是指什么
- 关于IIS 7.0 局域网无法访问的解决方法 windows7 iis局域网不能访问
- Java - 基本语法
- 为女儿示范的两张石膏像素描
- Spring DI依赖注入方式
- Apollo OpenDRIVE和ASAM OpenDRIVE的区别
- FileRecv VNCViewer 使用方法
- linux 123端口,关闭123端口和1900端口的方法
- 组件化-创建私有组件库库
- 【按键精灵学习记录】以DOTA2人机为例
- linux qt kits叹号,windows系统,HBuilderX无法启动、点击无反应、或启动报错的解决方案...
- Object和Objects
- linux究竟有何优势?为何大多数程序员会选择linux?
- 史上最全国家统计局划分代码爬取
- 使用 Vue3 重构 Vue2 项目(长文)
- 通用PE工具箱1.8.1安装图解
- python第五章课后编程题答案_Python核心编程-第五章课后习题