matlab 编译 java_MATLAB Java builder的使用——在JAVA中调用MATLAB代码

MATLAB从2006b的版本之后带有MATLAB Builder for Java(又叫Java Builder),是对MATLAB Compiler的扩展。用Java Builder可以将MATLAB函数包装到一个或多个Java类中形成一个Java组件或包。每个MATLAB函数被封装为Java类的一个方法,可以在Java应用程序中被调用。

在MATLAB安装目录/toolbox下如果看到javabuilder文件夹,则说明已经安装MATLAB Builder for Java。

配置步骤:

软件:Eclipse 3.5

Matlab 2009a

环境变量设置 :

JAVA_HOME (JDK的安装位置,如C:/Program Files/Java/jdk1.5.0) 设置后,重启matlab才能有效。用getenv JAVA_HOME在Matlab的命令窗口中试验,看看得到的返回值正确方可说明其对Matlab生效了。

Path添加%JAVA_HOME%/bin/javac

使用方法:

一,将MATLAB的.m文件生成jar包

1 在matlab的command窗口输入deploytool,会在右侧弹出一个新窗口(Deployment Tool)。

2 在Deployment Tool中,点击new按钮,选择Matlab Builder for Java与Java Package。新建一个工程名字,如myadd.prj 。

3 确保在Deployment Tool面板中的Generate Verbose Output被勾上了。

4 在MATLAB的Editor中编写myadd.m文件,示例代码如下:

function y = myadd(a, b)

y = a+b;

end

将myadd.m文件加入到Deployment Tool中的新建的类下面的class 文件夹下。

5 点击build按钮,则会在matlab的当前目录下,生成以一个与工程同名的文件夹。找到distrib文件夹,将myadd.jar包拷贝到JAVA工程目录下。

二、在Eclipse中新建JAVA项目

1 将myadd.jar包加入项目的build path;

2 matlabInstallRoot /toolbox/javabuilder/jar/javabuilder.jar 加入项目的build path;

3 新建JAVA类文件MJBuilderTest.java,示例代码如下:

/* Necessary package imports */

import com.mathworks.toolbox.javabuilder.*;

import myadd.*;

/*

* MJBuilderTest class test the myadd class created by Java Builder. The

* inputs are passed on the command line.

*/

class MJBuilderTest

{

public static void main(String[] args)

{

MWNumericArray a = null; /* Stores input values a */

MWNumericArray b = null; /* Stores input values b */

Object[] result = null; /* Stores the result */

Myadd myAdd = null; /* Stores myadd class instance */

try

{

/* 检测输入变量 */

if (args.length != 2)

{

System.out.println("Error: must input 2 numbers!");

return;

}

/* 接收输入变量 */

a = new MWNumericArray(Double.valueOf(args[0]),MWClassID.DOUBLE);

b = new MWNumericArray(Double.valueOf(args[1]),MWClassID.DOUBLE);

/* 创建myadd对象 */

myAdd = new Myadd();

/* 计算并输出结果 */

result = myAdd.myadd(1, a, b);

System.out.print("/nThe sum of " + a.toString() + " and " + b.toString() + " is: ");

System.out.println(result[0]);

}

catch (Exception e)

{

System.out.println("Exception: " + e.toString());

}

finally

{

/* Free native resources */

MWArray.disposeArray(a);

MWArray.disposeArray(b);

MWArray.disposeArray(result);

if (myAdd != null)

myAdd.dispose();

}

}

}

4 在Eclipse中设置好输入参数输入窗口:Run as- Run configations-Arguments 选择 要输入的数据类型,这里选择的是“string_prompt”,点击应用。

5 编译执行MJBuilderTest.java,输入参数(2个参数用空格隔开),例如:1 2 ,如果配置正确,结果会显示

“The sum of 1 and 2 is:  3”

可能出现的问题:

我使用的MATLAB版本是2009a在编译MJBuilderTest.java报错:

Failed to find the library mclmcrrt710.dll,required by MATLAB Builder JA, on java.library.path

原因是2009a要对应安装mclmcrrt7.10。 在MATLAB安装目录下查找:/toolbox/compiler/deploy/win32,找到MCRInstaller.exe 安装,重启Eclipse即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值