java调用matlab函数
如何将实验结果在matlab中可视化呢,下面使用java语言编程,调用matlab中的函数:
本人安装的是Matlab7.11.0 (R2010a)和 Eclipse 4.2 ;
1)首先设置环境变量,运行tomcat,Eclipse等都需要依靠环境变量JAVA_HOME,Path,classpath,具体的设置可以参考这里
为了使在matlab中将.m函数编译为jar包,还需要在classpath中添加:
%matlabInstallRoot%\R2010a\toolbox\javabuilder\jar\javabuilder.jar(具体依据matlab版本而定版本)
2)将Matlab的m文件编译成jar包
这里我们使用Matlab自带的例子,在路径
%matlabInstallRoot%\R2010a\toolbox\javabuilder\Examples\PlotExample
下,此处是m文件:
function drawplot(x, y)
plot(x, y); %%使用matlab函数plot()作图
在MATLAB中Command窗口中输入deploytool调出部署工具DeploymentTool。新建一个工程,输入工程名Demo.prj,选择路径,并选择Target为 Java Package。
在MATLAB右侧会出现我们新建的工程。
将刚刚编写的m文件直接拖拽进去,并重命名类名为plotter,点击Build编译:
点击编译后(过程有点长~),看到build finished。就会刚刚设置的路径下看到Demo的文件夹。
3)在java工程中调用matlab生成的类
新建工程TryMatlabPlot,并右键在Build Path中引用相关的包
%matlabInstallRoot%\R2010b\toolbox\javabuilder\jar\jarbuilder.jar
以及刚刚生成的plotdemo\distrib\plotdemo.jar
期间遇到的问题
【1】用matlab画图(一个工业项目),然后利用java调用,jar包什么的已经打完了,但是程序不报错,只是图像不显示。类似帖子提问
解答:java调用显示不出图的 可能是因为jdk版本问题
jdk1.7的好像显示不了。用jdk1.6的就可以了
【2】使用jdk1.6后报错,类似帖子:
Exception in thread "main" java.lang.UnsatisfiedLinkError: Failed to find the library mclmcrrt713.dll, required by MATLAB Builder JA, on java.library.path.
This library is typically installed along with MATLAB or the MCR, its absence may indicate an issue with that installation or the current path configuration.
The MCR version that this component is trying to use is: 7.13.
解答:copy个mclmcrrt713.dll过来放到c:/windows/system32下面
MATLAB Compiler™ 能够将您的 MATLAB® 程序编译为独立的应用程序,或可与其它通用编程语言集成的共享库。通过安装MATLAB Compiler Runtime,没有 MATLAB 的用户也可以使用 MATLAB Compiler 创建的应用程序和库,而无需支付版税。您既可以将 MATLAB Compiler Runtime 与应用程序打包到一起,也可以让您的用户在安装过程中进行下载【MCR下载地址】。
今天有同学遇到这个问题,上网查了一下好像是因为你的matlab所运行的java虚拟机和你程序的java虚拟机,一个是64位,一个是32位,或者版本不同导致的。matlab输入version -java看一下java版本,然后如果是64位的就去下一个安装。我是用eclipse给你提供个eclipse 的修改方法,去你eclipse点window=>preferences=>installed JREs=>add,将新安装的加进去,然后去你的项目右键=>properties=>java build path=>libraries把之前的jre删了,然后点add librariy=>JRE system library=>alternate JRE,选你刚装的jre,finishing,ok,完成,运行吧,少年,祝好运【参考】

matlab2010Ra的java虚拟机版本是jdk1.6.0_12
java调用matlab函数的更多相关文章
- (转)JAVA 调用matlab
本文仅用于学习. 原文地址链接:http://blog.csdn.net/wannshan/article/details/5907877 前段时间摸索了java调用matlab东西,不说学的有多深, ...
- java调用matlab绘图
一 注意事项 1: MatLab的版本必须是2006b+(包括2006b或更高版本),因为只有在这些版本中才有MATLAB Builder for Java(也叫Java Builder). 2: 运 ...
- opencv通过dll调用matlab函数,图片作为参数
[blog 项目实战派]opencv通过dll调用matlab函数,图片作为参数 前文介绍了如何“csharp通过dll调用opencv函数,图片作为参数”.而在实 ...
- Android使用JNI(从java调用本地函数)
当编写一个混合有本地C代码和Java的应用程序时,需要使用Java本地接口(JNI)作为连接桥梁.JNI作为一个软件层和API,允许使用本地代码调用Java对象的方法,同时也允许在Java方法中调用本 ...
- JAVA调用matlab代码
做实验一直用的matlab代码,需要嵌入到java项目中,matlab代码拼拼凑凑不是很了解,投机取巧采用java调用matlab的方式解决. 1. matlab版本:matlabR2014a ...
- C/C++下调用matlab函数操作说明
1.matlab的安装 连接:http://pan.baidu.com/s/1qXuF7aO 安装32位版本的matlab(在目录下bin文件夹中有两个文件夹,选择win32文件夹下的setup进行安 ...
- 3D Slicer中文教程(六)—调用matlab函数(MatlabBridge使用方法)
1.安装MatlabBridge插件 (1)在工具栏找到Extension,点击进入Extension Manager (2)找到MatlabBridge,安装 2.配置MATLAB环境 (1)在模块 ...
- C++调用matlab函数
C++与matlab混合编程——C++调用MATLAB函数 笔者最近在从事一个MFC相关的项目,要求将用Matlab实现的算法通过应用MFC制作成一个小应用.其中有一部分内容需要求一个多元函数的最值. ...
- C++调用Matlab函数求特征值
最近需要用到C++和Matlab的混编,记录一下学习过程~ 要实现的是调用Matlab函数,求矩阵前k个最小的特征值及其特征向量. //C++ #include "engine.h" ...
随机推荐
- ThreadLocal类的实现用法
ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量).也许把它命名为Thread ...
- [转]DIV+CSS和TABLE的区别
现在全国大大小小的网站都在搞一场技术“革命”,就是所谓“网站重构”说简单点就是DIV+CSS进行网站制作.用DIV+CSS代替传统的Table制作框架和美化页面.百度搜索优化 在重构之前,肯定要了解为 ...
- hdu1305 字典树
这题我开始想的简单了,WA一次,然后看disscuss里有人说输入时长度从小到大的,然后我信了.然后开始while(1) WA;然后我尝试先放如数组.后来对了: discuss里面果然不能太相信. 根 ...
- Java基础-常量
常量是一种标识符,它的值在运行期间恒定不变.并且常量在程序中只能被引用,而不能被重新赋值. 以下,我们在Math类中就定义了一个全局常量PI被final关键字修饰的变量名最好要大写. public c ...
- Mathematical operation
(1)Using let let result=2+1 let result=2-1 let result=2*1 let result=2/1(2) Using bracket echo $(($p ...
- Codeforces 650B Image Preview
time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...
- NYOJ298点的转换(矩阵十大问题之一)
点的变换 时间限制:2000 ms | 内存限制:65535 KB 难度:5 描述 平面上有不超过10000个点,坐标都是已知的,现在可能对所有的点做以下几种操作: 平移一定距离(M),相对X ...
- Oracle存储过程中传入参数,传出字符串
create or replace procedure getStr(usercode in varchar2,str out varchar2) is v_sql ); isEdit ); isAd ...
- 织梦DedeCMS删除所有栏目或文章后,新建ID不从1开始的解决方法
这个修改方法很简单,从模板无忧那里找到的,只需要在后台系统-SQL命令行工具里面运行以下语句即可,不用采用笨方法重新安装织梦CMS了. 删除所有栏目,新建ID从1开始: ALTER TABLE `de ...
- Hadoop 2.2.0部署安装(笔记,单机安装)
SSH无密安装与配置 具体配置步骤: ◎ 在root根目录下创建.ssh目录 (必须root用户登录) cd /root & mkdir .ssh chmod 700 .ssh & c ...