参考:http://blog.csdn.net/wannshan/article/details/5907877
前段时间摸索了java调用matlab东西,不说学的有多深,也算有结果了,达到目的了。也即用java程序可以调用matlab中函数了。
按顺序说吧,最开始肯定是下个matlab看看。下哪一个呢。开始下一个7.0觉得很新了。后来才觉得不是,现在都有7.8了。同时网上还流传着另外一种版本号信息,即2006版、 2006a版、2008b版,后来从网上找资料才知道,原来,matlab是一年两版的,叫a版和b 版。比如MATLAB 7.2 (Release 2006a),我下的是m7.8即2009a版。网上有对应关系,有兴趣可以找一下。
先说明一下,我用java调用matlab用的是matlab人提供的,MABLAB BUILDER JA工具,还要告诉你,这工具2006b版以前是没有的,我想以前java可能通过JNI通过c来调用matlab的。所以你下载时要注意版本了。还有一点要说明下,如果你用的是AMD的处理器,不是intel的处理器,安装matlab后,可能不能运行,具体表现是,一打开就关闭了。我公司机器用就是AMD的处理器,解决办法其实也很简单,就是给你的机器新建立一个系统变量,变量名是BLAS_VERSION,变量值是D://MATLAB7//bin//win32//atlas_Athlon.dll(你的matlab安装地址)。
然后,就是我们学着用MABLAB BUILDER JA了,开始不知道看matlab帮助,只是从网上看别人写的东西,关于这样的文章基本上出自一个娘胎,我不明白的地方,都一样的没有。后来看到了matlab帮助文档了,确实兴奋了一把,那才是最正宗的。下面我就试着按照它的说明一步一步说一下。
先来,介绍一下MATLAB® Builder™ JA
吧,它是 MATLAB® Compiler™的扩展产品,用它你可以把你的m-code文件包装起来,并打包到一个多个class文件中,这样的你的java程序就能用matlab了,其实是这样的,m-codeiv当然就是你想调用的matlab程序了。
要说明一点,如果你只是在安装matlab的机器上,用java调用运行由MATLAB® Builder™ JA生成的jar包,当然可以。
如果你要在没有安装matlab的机器上用java调用这些jar包,怎么办?也是可以的,不过,不过你要先在机器上安装matlab提供的MATLAB Compiler Runtime (MCR)
,它的安装文件在D:\program files\study\MATLAB\R2007b\toolbox\compiler\deploy\win32下(你的安装目录下)文件名MCRInstaller.exe。
准备工作:
java环境,JAVA_HOME设置正确。还有一点你jdk版本要是1.6以上的,1.5可能有错。
关键部分来了,在这部分你可以,通过一个例子,看到一个M-code function转变成为java可调用组件。
这个例子的名字叫,magic square,这个例子让你学会如何,创建一个叫magicsquare 的java组件,它主要包括一个 magic class,和一个jar文件,还有其它上些发布组件用到的文件。magic .class是最关键的,就是它包装了, MATLAB 的函数 makesqr, makesqr函数是计算魔方数组用的,后面我们就是java程序,调用这个函数。
MATLAB Builder JA,可以通过在matlab命令,deploytool 调出,在这之间,为了验证matlab已能得到你的java环境了,你可以用,getenv JAVA_HOME来验证一下,能返回你的JAVA_HOME就是正确的了。
这个例子的,m代码和java代码,matlab都帮我们写好了。你现在需要做的就是把它的代码拷贝你的工作空间中,它是例子在
matlabroot /toolbox/javabuilder/Examples/MagicSquareExample .
matlabroot就是matlab的安装目录。
拷贝MagicSquareExample这个文件夹到你工作空间, for example, D:/javabuilder_examples
记得不要有空格。把MagicSquareExample子目录改名为 magic_square,现在的文件结构应该是 D:/javabuilder_examples/magic_square .没错的话。然后把matlab工作空间转到D:/javabuilder_ examples/magic_square。 最后,要用m-code function我们要先测试它,打开makesqr.m文件,然后在matlab命令行中,输入 makesqr(5),看看结果是不是
17 24 1 8 15
deploytool 调出 MATLAB Builder JA,它应该是如下这个样子,
然后你选择MATLAB BUILDER JA,新建一个工作,点击Browse按钮把你的工作放在
D:/javabuilder_examples/magic_square
.输入magicsquare
作为工程名称。默认工程名字也是
D:/javabuilder_examples/magic_square
目录下的包名。
MATLAB Builder JA 分配classes存放的文件夹名是按工程名称来设置的,所以在本工作中,Magicsquare
就是作为,calsses存放目录
名称了,我们要手动改它名字为,class,直接右击就可以改了。(这也是我以前看别人文章的,老找不到他们所谓的class文件夹的原因,也没人说这个问题)
工作建好以后,你可以setting你的工程,matlab的指南上说,让我们把Generate Verbose Output
选项选上,这样就能看到出错信息,实际上它默认是选择的。
然后,把m文件添加到工程中,在matalb中找到makesqr.m
文件把它,用鼠标拖到工程的magic
文件夹下。然后保存工程。
下面就是构建工程,点击面板上方
按钮,等待一会,matlab就会你的工程目录下,创建src
和
distrib两个文件夹。
src目录中包括有,生成的java文件,magic.class。distrib目录中包括有java存档文件,magicsquare.jar。
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
下面就是把m-code函数创建成一个java组件。用刚才说的,
接下来,就是验证你用matlab builder ja生成的java组件是不是能用的时候了。
先在你的java ide中建立一个java工程,然后把刚才生成的magicsquare.jar,还有,matlabroot
/toolbox/javabuilder/jar/javabuilder.jar加入你的java工程构建路径中去。
然后你把D:/javabuilder_examples/magic_square/MagicDemoJavaApp下的getmagic.java测试文件拷贝到你java工程下,然后直接运行它。具体是怎么调用的,你看一测试代码就知道了,很easy.
就可以测试了。它是提示你输入一个数。如输入5,回车得到
Magic square of order 5
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
就正确了。
- 大小: 39.4 KB
分享到:
相关推荐
Java程序调用MATLAB接口 Java 程序调用 MATLAB 接口是 Java 和 MATLAB 之间的交互接口,允许 Java 程序调用 MATLAB 的函数和方法。本文将详细介绍 Java 程序调用 MATLAB 接口的注意事项、环境安装、MATLAB 如何生成...
### Java调用MATLAB的实例知识点详解 #### 一、MATLAB函数的创建与封装 在本案例中,首先需要创建一个MATLAB函数`operation.m`来实现基本的数学运算功能,具体步骤如下: 1. **函数定义**: - 函数名为`...
java调用matlab程序的一个applet-java调用matlab.txt 最近在做java实现多Agent,如有同志可相互切磋,现附上一段java调用matlab程序的程序,希望能帮到有需要的同仁。
在Java程序中调用Matlab函数,介绍了在java中怎样调用matlab函数来进行矩阵的分析操作
首先,要了解Java调用Matlab方法时,Matlab的返回值类型可能会根据函数和Matlab版本的不同而有所差异。例如,在Matlab R2009a环境下,使用`returningFeval`函数调用Matlab函数时,返回的可能是一个`object`数组,...
Java调用MATLAB是软件开发中的一个常见需求,特别是在数据处理、科学计算或者算法实现时,MATLAB的强大功能经常被需要融入到Java应用程序中。这个`java_call_matlab.zip`压缩包显然包含了关于如何在Java中调用MATLAB...
Java调用Matlab进行混合编程是一种常见的技术,它允许开发者利用Matlab强大的数值计算和科学分析能力,同时结合Java的跨平台和系统集成优势。以下是对这个详细过程的深入解析: 1. **Matlab程序准备**: - 首先,...
调用MATLAB 函数的错误 在调用 MATLAB 函数时,我们可能会遇到错误,即 `UnsatisfiedLinkError`。这可能是因为 mcr 没有安装或者调用出错导致的。解决方法是安装 MATLAB 中的 mcr,然后重新生成 jar 包。 Java 传...
### Java中如何调用MATLAB代码 #### 一、引言 随着计算机科学的发展,不同编程语言间的交互变得越来越重要。MATLAB作为一种广泛应用于数学计算、算法开发和数据分析的高级编程语言,在科研与工程领域拥有不可替代的...
首先,我们来看“java调用matlab测试源码”这个标题,它暗示了我们将会涉及到Java和MATLAB的交互。MATLAB提供了Java-MATLAB接口,允许Java代码直接调用MATLAB的函数和脚本,实现数据的交换和计算任务的执行。这通常...
Java与Matlab混合编程jsp调用Matlab网页显示Fig 在本文中,我们将讨论Java与Matlab混合编程的技术,具体来说是使用JSP调用Matlab生成的Figure并在网页中显示。我们将从环境配置开始,逐步介绍混合编程的步骤,并...
Java基于MCR的本地远程调用Matlab函数库
通过Java调用Matlab,可以将Matlab的计算引擎嵌入到Java应用或Web服务中,为复杂的数据处理和科学计算提供便利。 首先,要实现这一目标,你需要安装Matlab的Java接口,即MATLAB Compiler SDK。这个SDK允许开发者将...
要实现Java调用MATLAB编写的程序,可以遵循以下详细步骤: ### 一、在MATLAB环境下编写程序 首先,需要在MATLAB环境下编写相应的函数类型程序,不能是脚本类型。例如,定义一个简单的加法函数,如下所示: ```...
1.正确地配置好环境变量,其中包括eclipse 中所用的jdk环境变量,以及matlab所用的环境变量; 2.未安装Matlab可以通过下载9.2版本的MCR进行安装Matlab的最小化运行环境; 更多内容,请移步博客:...
这篇博客“Java调用MATLAB,将文件转换为二进制流”详细介绍了如何利用Java调用MATLAB的功能来处理文件,将其转换为二进制流。这种技术在数据处理、文件传输或存储等领域非常有用,因为二进制格式可以更高效地处理...
Java中通过Com Builder的方式调用Matlab作图的示例。 具体说明请参考博客http://blog.csdn.net/xiaowei_cqu/article/details/7038819
本文将详细介绍一个经过亲测有效的Java调用MATLAB的步骤,以解决网络上流传的教程可能存在的问题。 首先,我们需要创建一个简单的MATLAB脚本,例如名为`OnlyOutput.m`。这个脚本将包含我们希望在Java中调用的MATLAB...