您的位置:首页 > 编程语言 > MATLAB

在Java中调用MATLAB函数

2017-03-21 14:33 197 查看
在Java中调用MATLAB函数

一.准备工作:配置Java环境,jre版本为1.7;安装MATLAB(2016a版),MATLAB自带jre版本也是1.7(两者一致)

*查看MATLAB中jre版本语句:》version –java

二.具体操作步骤

1.MATLAB中:

1)新建脚本,在脚本中使用function命令定义.m文件



保存脚本:将.m文件保存到某新建文件夹下(eg./桌面/ mjtest)

2)在命令行窗口输入deploytool命令  选择LibraryComplier  TYPE:JavaPackage 

 AddExported function:添加之前写好的.m文件  编辑className(此处修改的类名,即为之后在java程序中调用函数的函数名) 打包并保存在mjtest文件夹中  最后会在mjtest中生成一个文件夹和.
4000
prj文件(此处可命名为drawplot.prj,则文件夹名默认为drawplot)









2.在Java中:

1)新建工程

2)工程 > lib(新建此文件夹存放jar包) > 导入两个jar包(一个是在matlab安装目录下的


另一个是在mjtest文件夹中



3)配置两个Jar包 BuildPath > ConfigureBuildPath > AddJARs > 把刚刚放在lib下的两个jar包添加,完成效果



3.在Java中:

1)新建Test类

2)编辑代码并运行

(注:import com.mathworks.toolbox.javabuilder.*,

import drawplot.plotter ; //此处drawplot是jar包名,plotter是类名)

import com.mathworks.toolbox.javabuilder.*;

import drawplot.plotter;

public class Test {

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();
}
}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 函数 MATLAB