`
jarod2008
  • 浏览: 82384 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 中调用matlab

    博客分类:
  • java
阅读更多

1.          环境准备

a)          机器上有 Eclipse 3.1 Matlab 2007a

b)          机器的环境变量设置

                         i.               JAVA_HOME (JDK 的安装位置    C:\Program Files\Java\jdk1.5.0)

l 设置后,重启 matlab 才能有效。

l getenv JAVA_HOME ,在 Matlab 的命令窗口中试验,看看得到的返回值正确方可说明其对 Matlab 生效了。

                       ii.               Classpath

l 添加 matlabInstallRoot \toolbox\javabuilder\jar\javabuilder.jar

                      iii.               Path

l 添加 %JAVA_HOME%/bin/javac

2.          build matlab m-file into a jar

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

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

c)          In the Deployment Tool pane, ensure that the Generate Verbose Output option is selected

d)          将欲被 java 调用的 .m 文件,(如 mydraw.m ,其中包括两个参数 (x,y) ),从 Matlab 整个界面的左侧工作目录面板,拖拽到 Deployment Tool 中的新建的类下面的 class 文件夹下。

e)          点击 build 按钮,则会在 matlab 的当前目录下,生成以一个与工程同名的 ( flying) 文件夹。如果 build 成功,会看到文件夹结构如下:

Flying -----|----distrib

                  |     |-----flying.jar

                 |       |-----flying.ctf

                |

                 |-------src

                  |           |----flying

                  |                   |----flyingclass.java

                  |                   |----flyingMCR.java

                  |           |----classes

                  |                   |----flying

                  |                                   |----flyingclass.class

                  |                                   |---- flyingMCR.class

                 |-------build.log

                  |-------flying.ctf

                 |-------flying.jar

                  |-------mccExcludedFiles.log

                  |-------readme.txt

3.          编写 java 函数,准备调用刚刚生成好的 flying.jar 中的方法。

a)          java 工程 Test 属性的 BuildPath 中,添加两个 jar 包:

                         i.               matlabroot \toolbox\javabuilder\jar\javabuilder.jar

                       ii.               TestDirectory \ flying.jar

b)          编写函数示例如下

package test;

/**

* test for a Matlab Call

*

*/

import com.mathworks.toolbox.javabuilder.*;

import flying.*;

public class testMatlabClass {

         /**

         * @param args

         */

         public static void main(String[] args) {

                   // TODO Auto-generated method stub

                  

                   try {

                   System.out.println("Begin");

                   flyingclass flyingDraw=new flyingclass();

                   System.out.println("Middle");

                   flyingDraw.mydraw(7,2);

                   System.out.println("Here");

                   }catch (Exception e){System.out.println(e);}

                  

                  

         }

}

d)          如果不能正常运行,可以考虑在 classpath 中,加入 flying.jar 所在的位置。

4.          详细

a)          参见 matlab 的帮助文件

b)          www.simwe.com/forum/archiver/tid-747229.html

c)          数据类型相关

                         i.               Java 的数值型数组,可以直接作为输入参数传递到 .m 文件上。

如: mydraw(x,y) ,可以画 x=[1 2 3 4] ,y=[3.3 -5 6 10.2] 这样的线图。 Java 调用该方法时候,如果传递的参数是整型或者实数型数组,则直接可成功。

java :

int[] a=new int[4];

int[] b=new int[4];

// a,b 赋值 …//

// 调用

flyingclass flyingDraw=new flyingclass();

flyingDraw.mydraw(a,b);        

注意: a,b 最好所有有索引的位置都有值,否则如果没有充分赋值曲线可能会最终折回 (0,0) 点。

5.          Matlab 程序 (.m 文件 ) 的修改

a)          找到 TestDirectory \ flying.jar 所在的位置(因为按照上述步骤的话, .m 源文件就在该位置附近)。这个位置,从 Eclipse Package Explore 可以用看到。

b)          直接修改欲改动的 .m 文件

c)          打开 Matlab, Command 输入 Deploytool, 在新打开的部署面板中,“打开”该 m 文件所在的工程,如 flying.prj

d)          选中相应工程下 Class 文件夹下的 .m 文件,点击工具栏的 Build 按钮。

e)          则相应源文件被重新编译。如果按照前面步骤添加的 jar 包,则编译后新生成的 jar 包自动替换掉原有的 jar 。又由于这个 jar 的位置,已经作为 BuildPath 告诉了 java 的相应工程,因此 Java 端不需要做任何调整,即可正确调用到新修改了内容的 matlab 方法。

 

另:所有路径中最好不要包含中文,否则将解析不正确。
分享到:
评论
2 楼 qq690388648 2014-08-06  
楼主看看那个帖子,有木有办法满足要求?
1 楼 qq690388648 2014-08-06  
http://bbs.csdn.net/topics/390535534?page=1

相关推荐

    Java程序调用MATLAB接口

    Java程序调用MATLAB接口 Java 程序调用 MATLAB 接口是 Java 和 MATLAB 之间的交互接口,允许 Java 程序调用 MATLAB 的函数和方法。本文将详细介绍 Java 程序调用 MATLAB 接口的注意事项、环境安装、MATLAB 如何生成...

    java_call_matlab.zip_JAVA调用matlab_java 调用matlab_java-matlab

    Java调用MATLAB是软件开发中的一个常见需求,特别是在数据处理、科学计算或者算法实现时,MATLAB的强大功能经常被需要融入到Java应用程序中。这个`java_call_matlab.zip`压缩包显然包含了关于如何在Java中调用MATLAB...

    Java应用程序和java Web调用Matlab配置实例

    通过Java调用Matlab,可以将Matlab的计算引擎嵌入到Java应用或Web服务中,为复杂的数据处理和科学计算提供便利。 首先,要实现这一目标,你需要安装Matlab的Java接口,即MATLAB Compiler SDK。这个SDK允许开发者将...

    在Java程序中调用Matlab函数

    在Java程序中调用Matlab函数,介绍了在java中怎样调用matlab函数来进行矩阵的分析操作

    Java中如何调用matlab代码

    ### Java中如何调用MATLAB代码 #### 一、引言 随着计算机科学的发展,不同编程语言间的交互变得越来越重要。MATLAB作为一种广泛应用于数学计算、算法开发和数据分析的高级编程语言,在科研与工程领域拥有不可替代的...

    从java中调用matlab详细介绍

    Java调用MATLAB技术主要依赖于MATLAB Compiler和MATLAB Builder JA工具,使得开发者能够将MATLAB编写的算法集成到Java应用程序中。以下是对这一技术的详细解释: 首先,MATLAB是一个强大的数值计算和科学计算软件,...

    java调用matlab笔记

    ### Java调用Matlab知识点详解 #### 一、部署环境 **Matlab版本:** MATLAB R2010a **开发工具:** MyEclipse Professional 2014 #### 二、Java版本配置 1. **Matlab中的Java版本:** Java 1.6.0_12-b04 with ...

    【Matlab】Java 中使用 MATLAB 作图

    整个过程的关键在于利用MATLAB Builder for Java工具,将MATLAB函数封装成Java可以调用的类,这样就可以在Java项目中调用MATLAB中的函数,发挥各自语言的优势。这对于不熟悉信号处理的小魏来说,无疑是一种快速实现...

    Java基于MCR的本地远程调用Matlab函数库.zip

    Java基于MCR的本地远程调用Matlab函数库

    JAVA调用MATLAB程序

    ### JAVA调用MATLAB程序知识点解析 #### 一、MATLAB函数定义与编译 **1.1 MATLAB函数概述** MATLAB是一种高级编程语言,广泛应用于科学计算领域,特别是数学和工程学。它允许用户创建自己的函数来执行特定任务。...

    matlabcontrol-4.1.0(java中调用matlab代码jar包)

    有时为了方便,我们在编写java代码中,如果需要进行大量的计算(如矩阵计算、方程组计算等)时,写... 使用此包就可以进行java调用matlab。使用中会有很多坑,我会写一遍博文来进行说明,并把我遇到的问题全部写出来。

    基于Hadoop的Java调用Matlab混合编程的车牌识别.pdf

    总的来说,车牌识别技术在现代交通管理中扮演着重要角色,而基于Hadoop的Java调用Matlab混合编程的车牌识别技术为大规模车牌图像的快速处理提供了技术保障,这种技术的使用有助于提升交通管理的效率和准确性,具有...

    java调用matlab程序的一个applet-java调用matlab.txt

    java调用matlab程序的一个applet-java调用matlab.txt 最近在做java实现多Agent,如有同志可相互切磋,现附上一段java调用matlab程序的程序,希望能帮到有需要的同仁。

    最全的java调用matlab总结.pdf

    Java调用MATLAB主要涉及到Java和MATLAB的交互,这一技术允许Java应用程序利用MATLAB强大的数值计算和数据处理能力,而无需直接运行MATLAB环境。以下是对这一知识点的详细解释: 1. **Java-MATLAB接口**:Java可以...

    Java中使用MATLAB作图

    Java中通过Com Builder的方式调用Matlab作图的示例。 具体说明请参考博客http://blog.csdn.net/xiaowei_cqu/article/details/7038819

    一种Java调用Matlab的方法简介.pdf

    首先,要了解Java调用Matlab方法时,Matlab的返回值类型可能会根据函数和Matlab版本的不同而有所差异。例如,在Matlab R2009a环境下,使用`returningFeval`函数调用Matlab函数时,返回的可能是一个`object`数组,...

    Java调用Matlab开发详细过程

    Java调用Matlab进行混合编程是一种常见的技术,它允许开发者利用Matlab强大的数值计算和科学分析能力,同时结合Java的跨平台和系统集成优势。以下是对这个详细过程的深入解析: 1. **Matlab程序准备**: - 首先,...

Global site tag (gtag.js) - Google Analytics