一、matlab版本必须支持java
在command 模式下面运行deploytool,如果支持该命令即可使用
二、matlab中function的书写
%定义一个函数operation(a,b),求a与b的加减乘除运算,并返回结果
%函数定义function 输出变量列表[s,m,...] 函数名(输入变量列表)sum,sub,mul,div中
function [sum,sub,mul,div] = operation(a,b);
sum = a + b;
sub = a - b;
mul = a * b;
div = a / b;
end
PS:上面标红的部分与java中调用该operation的返回值有关系,在java中调用的 Object result[] = XXX.operation(4,a,b); 4表示有4个返回值,分别存放在result[0]到result[4]中。
三、使用matlab编译生成jar
在matlab命令窗口下输入 deploytool,就会弹出一个编译窗口,
然后点击,file,选择new-deployment project,
然后选择matlab builder jave。
name的地方填写工程名,
ocation填写该工程的存储位置。
点击ok。
然后,把m文件添加到工程中,先new一个class,这个class的名字就是你将来在java中需要new的class的名字,也就是matlab中operation所在的class名字然后将你的m文件添加到这个class目录下,然后直接build即可。
四、在java中使用matlab的函数
现在eclipse下面new一个新的java工程,然后将第三部build成功后产生的文件夹下面的
distrib目录中的XXX.jar 以及你matlab安装目录下/toolbox/javabuilder/jar/javabuilder.jar加入你的java工程extend lib 中去。
然后你可以清晰的看到XXX.jar中包含的函数和类
如果result[0]返回的是一个数组,可以通过如下的方法解决
MWNumericArray a = new MWNumericArray(Double.valueOf(result[0].toString()),MWClassID.DOUBLE);
MWNumericArray temp = (MWNumericArray)result[0];
float [][] weights=(float[][])temp.toFloatArray();
五、可能碰到的问题
Exception in thread "main" java.lang.UnsatisfiedLinkError: Failed to find the library libmwmclmcrrt.so.7.13, 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.
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即可。
分享到:
相关推荐
在Java程序中调用Matlab函数,介绍了在java中怎样调用matlab函数来进行矩阵的分析操作
Java程序调用MATLAB接口 Java 程序调用 MATLAB 接口是 Java 和 MATLAB 之间的交互接口,允许 Java 程序调用 MATLAB 的函数和方法。本文将详细介绍 Java 程序调用 MATLAB 接口的注意事项、环境安装、MATLAB 如何生成...
Java基于MCR的本地远程调用Matlab函数库
通过Java调用Matlab,可以将Matlab的计算引擎嵌入到Java应用或Web服务中,为复杂的数据处理和科学计算提供便利。 首先,要实现这一目标,你需要安装Matlab的Java接口,即MATLAB Compiler SDK。这个SDK允许开发者将...
1. **在Java程序中直接调用MATLAB函数**:无需通过.m文件作为中介,而是直接在Java环境中使用MATLAB的计算资源。 2. **构建用户界面**:可以在MATLAB的.m文件中直接调用Java图形界面组件来构建复杂且交互性强的用户...
#### 三、Java调用MATLAB函数的关键步骤 **3.1 准备MATLAB函数** - **定义MATLAB函数**: 在MATLAB环境中编写和测试所需的函数。 - **使用Deploy Tool**: 通过Deploy Tool将MATLAB函数打包成Java可以调用的形式。 ...
### JAVA通过代码调用MATLAB函数 #### 概述 在跨语言开发环境中,实现不同...通过以上步骤,可以实现在JAVA环境中调用MATLAB函数的目标。这种方法不仅有助于解决特定领域的问题,还能提高代码的复用性和开发效率。
3. **在Linux环境下运行Java程序调用Matlab函数** - **安装MCRInstaller**: 1. 下载并安装适用于Linux系统的MCRInstaller(MCR_R2012b_glnxa64_installer.zip)。 2. 确保MCR版本与Matlab版本一致。 - **配置...
因此,了解如何在 C++ 或 Java 中调用 MATLAB 的函数变得十分重要。本文将通过一个具体的例子——求解矩阵的逆——来详细介绍这一过程。 #### 基本概念介绍 1. **MATLAB**: 一种广泛用于算法开发、数据分析和数值...
同时,由于MATLAB是解释型语言,调用MATLAB函数的速度可能相对较慢,这在性能敏感的应用中需要考虑。 总的来说,Java调用MATLAB是一种强大但需要谨慎使用的技术。它允许开发者利用MATLAB的计算能力,同时利用Java的...
- 在 Java 中调用 MATLAB 函数时,可能会遇到性能问题,尤其是在大量数据处理场景下,应优化 MATLAB 代码以提高执行效率。 #### 六、总结 通过 MATLAB 2013a 和 Java 的结合使用,可以实现跨平台的应用程序开发,...
例如,在Matlab R2009a环境下,使用`returningFeval`函数调用Matlab函数时,返回的可能是一个`object`数组,其中包含`double`类型的数组。Java程序中需要适当地处理这些返回值,将它们转换为Java能理解的数据类型,...
本文介绍了使用Java调用MATLAB进行简单的计算的过程,涵盖了从在MATLAB中定义函数到使用Eclipse平台调用MATLAB进行计算的整个过程。下面是相关的知识点: 1. 在MATLAB中定义函数:在MATLAB中定义一个函数 operation...
总结,Java调用Matlab主要涉及Matlab函数的编译、Java工程配置以及Java代码的编写。通过这种方式,你可以将复杂的数值计算任务交给Matlab处理,而Java负责整体应用的逻辑和控制,实现了两者的有效结合。这种混合编程...
从 MATLAB 中调用 Java 可以通过多种方式实现,包括使用 Java 的类库和方法、使用 Java 的构造函数和方法、使用 Java 的数组对象等。例如,我们可以使用 Java 的_util 包来实现数据分析和可视化功能,或者使用 Java ...
`这一行代码实现了Java调用MATLAB函数的过程。其中参数`a`和`b`分别代表输入的两个数值,1是函数输出参数的个数。通过这行代码,我们可以得到在MATLAB中定义的`myadd`函数执行的结果。 ### 运行配置 在`run ...
MATLAB可以通过`system`命令调用操作系统命令,`java`、`.NET`接口允许与这些平台交互,`webread`、`webwrite`可与Web服务通信。 8. **自定义函数**: 用户可以编写.m文件定义自己的函数,如`function y = myfun...