matlab代码转java(如何更改 MATLAB 使用的 Java 虚拟机)

本文目录
- 如何更改 MATLAB 使用的 Java 虚拟机
- JAVA调用MATLAB的程序怎么才能脱离MATLAB运行
- java和matlab之间数据类型的转换规则
- matlab与java混合编程有什么作用
- 如何用java调用matlab
- matlab的矩阵类型在java中如何访问
- matlab 运行在java中eclipse
- 如何在java中调用matlab代码
如何更改 MATLAB 使用的 Java 虚拟机
1. 下载和安装JRE (Java Runtime Environment)或者 JDK (Java Development Kit)。后者包含了 JRE 以及开发工具。
2. 确认安装文件中 JRE 的路径。不同的操作系统,不同的下载组件(JRE或者JDK)所指的路径是不同的。(见下文)
3. 将 MATLAB_JAVA 环境变量设置为此路径。(见下文)
4. 在设置此环境变量后,启动 MATLAB。(见下文)
在 Linux 或者 Mac 系统中,这个解决方法只应用与在 shell 窗口或者更改 MATLAB_JAVA 的环境变量的快捷键中启动 MATLAB。只是点击 MATLAB 图标并不能启用新的 Java。
*为**MATLAB**设置新的** Java *
*Macintosh*
_使用快捷键:_
您可以下载附件 "createMATLABShortcut" 脚本,然后在 MATLAB 中运行这个脚本,以此来取代在 Terminal 中启动 MATLAB,以使用新的 Java。这个脚本会在桌面穿件一个带有新的 JRE 的 MATLAB 快捷键。JRE默认的路径是:
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
可以把新生成的快捷键拖到 Dock,方便点击。
_使用__ Terminal:_
如果您希望用 Terminal 方式来设置新的 Java,按照以下的步骤:
用 Finder 工具确认 JRE 路径。JRE 的路径可能是以下设置,依据您是安装了 JDK 还是 JRE:
JDK:
/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/jre
JRE:
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
请留意,第二种情况,JRE 路径的包含了一个空格,你需要再以下命令中用引号包含路径。
打开一个 Terminal 窗口,然后执行命令:
echo $SHELL
来确认使用的 Shell 信息。
如果是 csh 或者 tcsh shell,用 “setenv” 命令来设置 MATLAB_JAVA 环境变量。比如:
setenv MATLAB_JAVA 《JRE path》
每次打开一个新的 shell 窗口都要运行这个命令。
如果是 bash shell,执行:
export MATLAB_JAVA=《JRE path》
这个设置只对当前打开的 shell 窗口起作用。
*Linux*
JDK 或者 JRE 是在安装的路径下。JRE 的路径是安装目录根目录下的 “jre” 目录。
如果是 csh 或者 tcsh shell,用 “setenv” 命令来设置 MATLAB_JAVA 环境变量。比如:
setenv MATLAB_JAVA 《JRE path》
每次打开一个新的 shell 窗口都要运行这个命令。
如果是 bash shell,执行:
export MATLAB_JAVA=《JRE path》
这个设置只对当前打开的 shell 窗口起作用。
*Windows*
根据操作系统,选择下载32位或者64位 JDK 或者 JRE。可以在 MATLAB 中运行以下命令确认操作系统信息:
》》 computer(‘arch’)
JRE 是在报还“rt.jar"的文件目录的上层目录。比如,如果”jt.jar”位于:
C:\Program Files\Java\jre6\lib\rt.jar
你需要设置 MATLAB_JAVA 环境变量为:
C:\Program Files\Java\jre6
设置 MATLAB_JAVA:
1. 点击开始菜单
2. 右击我的电脑,选择属性
3. 点击高级系统设置,然后点击环境变量按钮
4. 在系统环境变量栏中,设置或者添加 MATLAB_JAVA,指向 JRE 的路径。
以上设置会在下一次开启 MATLAB 时起作用。
*验证安装*
为了验证 MATLAB 是否使用了正确的 JVM,在 MATLAB 中键入命令:
》》 version -java
如果显示 MATLAB 没有使用正确的 MATLAB_JAVA 内容,你可能需要登出系统,然后重新登录。
JAVA调用MATLAB的程序怎么才能脱离MATLAB运行
估计这个程序中调用了 MATLAB BUILDER FOR JAVA 中的库函数吧,把这些库函数打包出来放到 java 运行的系统环境下估计应该不会有问题了
java和matlab之间数据类型的转换规则
其实java和matlab类型的转换并不困难,java与matlab可以混合编程,所以你可以在matlab端写一个M文件用于将matlab的矩阵换为数组(这个很简单三),然后将数组发给java端~同理在matlab端还写一个m文件用于将从java端发来的数组转换为矩阵,不需要强转,你只需要建一个新的矩阵,然后将数组的内容填进去就ok啦~
希望能够帮助到你!
matlab与java混合编程有什么作用
Java和matlab混合编程
如果用Matlab和java混合编程开发Windows的应用程序则可以实现优势互补,缩短开发时间,降低程序设计的复杂度。同时程序可以脱离Matlab环境独立运行,在工程计算和教学实践中都具有实际意义。
1.使用java调用Maltab函数的基本方法是:通过Java Builder实现Java调用Matlab。在Java环境中直接调用Matlab所生成的Jar包。
下面以在Java中产生任意维数的魔方矩阵,计算任意矩阵的特征向量和特征值,对两组数据进
行拟合并绘制拟合曲线三个实例来说明通过Java
Builder实现Java调用Matlab的过程。传统的纯Java编程实现上述实例非常复杂,甚至很难完成。这一问题在Matlab中只需要调用几个
函数即可完成。
1.1、将Matlab函数包装成Java类
首先在Matlab中编写三个M文件:
Eig.m
function =Eig(input)
format long
=eig(input);
End
Magic.m
function f =Magic( input )
f=magic(input);
end
Plot.m
function Plot(x,y )
p=polyfit(x,y,3);
t=min(x):max(x)/100:max(x);
s=polyval(p,t);
plot(x,y,’*’,t,s);
title(’数据拟合结果’);
xlabel(’x’);
ylabel(’y’);
end
其次,在Matlab中新建一个Deployment
Project,名称为MyProject.prj,类型为Java
package。在Project中新建三个Class,分别为GetEig,GetMagic,PolyFit。将
Eig.m,Magic.m,plot.m分别添加到上述Class中。之后点击Builder the project,等待编译成功即可。
1.2、在Java中调用Matlab函数
新建一个Java类JavaMatlab,并引入相关的包。
import com.mathworks.toolbox.javabuilder.*;//引入Matlab相关包
import MyProject.*;//引入建立的包及类
调用时Java与Matlab之间的参数传递需要通过MWNumericArray完成。具体的调用代码如下:
package org.genius.ExpandJava;
import MyProject.*;
import com.mathworks.toolbox.javabuilder.*;
public class JavaMatlab {
public static void main(String args) {
MWNumericArray a = null; // 用于保存矩阵
MWNumericArray ax = null; // 用于保存矩阵
MWNumericArray ay = null; // 用于保存矩阵
Object result = null; // 用于保存计算结果
GetEig getEig = null;
GetMagic getMagic=null;
PolyFit polyFit=null;
int r = 4; // 魔方矩阵维数
int array={{50,-20,0},{-20,80,60},{0,60,-70}};
double x={0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1};
double y={-0.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.3,11.2};
try {
//产生魔方矩阵并打印
a = new MWNumericArray(r, MWClassID.DOUBLE);
getMagic = new GetMagic();
result = getMagic.Magic(1,a);
System.out.println("产生的四维魔方矩阵:");
System.out.println(result);
MWArray.disposeArray(result);
//计算所给矩阵的特征向量和特征值并打印结果
a = new MWNumericArray(array, MWClassID.DOUBLE);
getEig = new GetEig();
result = getEig.Eig(2, a);
System.out.println("原始矩阵:");
System.out.println(a.toString());
System.out.println("得到的特征向量:");
System.out.println(result);
System.out.println("得到的特征值:");
System.out.println(result);
MWArray.disposeArray(result);
ax = new MWNumericArray(x, MWClassID.DOUBLE);
ay = new MWNumericArray(y, MWClassID.DOUBLE);
polyFit = new PolyFit();
result=polyFit.Plot(ax,ay);
polyFit.waitForFigures();
} catch (Exception e) {
System.out.println("Exception: " + e.toString());
}
finally {
// 释放本地资源
MWArray.disposeArray(a);
MWArray.disposeArray(ax);
MWArray.disposeArray(ay);
MWArray.disposeArray(result);
getEig.dispose();
getMagic.dispose();
polyFit.dispose();
}
}
}
如何用java调用matlab
1.确定配置好了相应的环境
首先,要确定你电脑上装好了MATLAB并且配置好了Java的运行环境,注意,MATLAB的版本必须是2006b+(包括2006b或更高版本),因为只有在这些版本中才有MATLAB Builder for Java(也叫Java Builder)。
2.打包步骤
a)打开MATLAB(笔者用的是MATLAB 2012b,版本的一些差异我会在后面注明),在Command Window框中输入deploytool,会跳出如下界面:
b)在Name中输入名字,在Location中选择路径,最后在Type中选择Java Package:
可能在有些版本中选择Type时显示的是Matlab Builder for Java,并且在Deployment Tool面板中还有Generate Verbose Output选项框,勾选上它,针对不同的版本时可能有一些出入,大家多留心一些,自己多尝试尝试。
c)在MATALAB的Editor中新建一个m文件,这里一个简单的加法函数add并保存:
d)在MATLAB中找到Java Package窗口,添加class文件,命名这个class文件的时候要注意了,因为这个文件就是以后导入到Java中要作为一个对象的名字,也就是说它就是放在new后面作为构造函数的类名。这里命名为matlabAdd:
e)然后点类名下的Add files,将刚才好的m文件add.m加到matlabAdd当中。
f)接着就可以打包了,还是在Java Package窗口找到,点击就可以打包了。等打包好,就可以调用了。
3.调用打包好的matlab函数
a)在MATLAB安装的目录中找到"...\toolbox\javabuilder\jar\javabuilder.jar"的文件,并在你刚才打包的文件夹中找到对应的包,本例中是firstOne.jar,然后将这两个jar包导入到你的Java项目当中。
matlab的矩阵类型在java中如何访问
用命令load
句法有以下几种
load(’filename’)
load(’filename’, ’X’, ’Y’, ’Z’)
load(’filename’, ’-regexp’, exprlist)
load(’-mat’, ’filename’)
load(’-ascii’, ’filename’)
S = load(...)
load filename -regexp expr1 expr2 ...
举例:
Example 1 -- Loading From a Binary MAT-fileTo see what is in the MAT-file prior to loading it, use whos -file: whos -file mydata.mat
Name Size Bytes Class
javArray 10x1 java.lang.Double
spArray 5x5 84 double array (sparse)
strArray 2x5 678 cell array
x 3x2x2 96 double array
y 4x5 1230 cell array
Clear the workspace and load it from MAT-file mydata.mat: clear
load mydata
whos
Name Size Bytes Class
javArray 10x1 java.lang.Double
spArray 5x5 84 double array (sparse)
strArray 2x5 678 cell array
x 3x2x2 96 double array
y 4x5 1230 cell array
Example 2 -- Loading From an ASCII File Create several 4-columnn matrices and save them to an ASCII file: a = magic(4); b = ones(2, 4) * -5.7; c = ;
save -ascii mydata.dat
Clear the workspace and load it from the file mydata.dat. If the filename has an extension other than .mat, MATLAB assumes that it is ASCII: clear
load mydata.dat
MATLAB loads all data from the ASCII file, merges it into a single matrix, and assigns the matrix to a variable named after the filename: mydata
mydata =
16.0000 2.0000 3.0000 13.0000
5.0000 11.0000 10.0000 8.0000
9.0000 7.0000 6.0000 12.0000
4.0000 14.0000 15.0000 1.0000
-5.70
matlab 运行在java中eclipse
一、matlab版本必须支持java
在command 模式下面运行deploytool,如果支持该命令即可使用
二、matlab中function的书写
%定义一个函数operation(a,b),求a与b的加减乘除运算,并返回结果
%函数定义function 输出变量列表 函数名(输入变量列表)sum,sub,mul,div中
function = operation(a,b);
sum = a + b;
sub = a - b;
mul = a * b;
div = a / b;
end
PS:上面function后中括号部分与java中调用该operation的返回值有关系,在java中调用的 Object result中。
三、使用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中包含的函数和类
五、可能碰到的问题
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中函数了。
按顺序说吧,最开始肯定是下个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:registered: Builder:trade_mark: JA吧,它是 MATLAB:registered: Compiler:trade_mark:的扩展产品,用它你可以把你的m-code文件包装起来,并打包到一个多个class文件中,这样的你的java程序就能用matlab了,其实是这样的,m-codeiv当然就是你想调用的matlab程序了。
要说明一点,如果你只是在安装matlab的机器上,用java调用运行由MATLAB:registered: Builder:trade_mark: JA生成的jar包,当然可以。
如果你要在没有安装matlab的机器上用java调用这些jar包,怎么办?也是可以的,不过,不过你要先在机器上安装matlab提供的MATLAB Compiler Runtime (MCR),它的安装文件在C:/Program Files/MATLAB/R2009a/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的安装目录。

更多文章:
进制转换的8421法(十进制如何转换成8421码~~请说方法)
2026年5月11日 00:45
线程和进程的区别是什么 面试(linux进程和线程的区别 面试)
2026年1月20日 03:15
rabbitmq最新版本(rabbitmq3.8.2安装步骤及集群配置)
2025年11月21日 11:00
易语言源码打开停止工作(同样一个易语言源码,为什么在我的电脑上运行就卡死,在别人的电脑上运行是正常的)
2026年5月15日 01:30
powershell快捷键打开(windows10的控制面板在哪里找)
2026年8月7日 07:15
oracle数据库完整性(oracle添加记录的时候提示违反完整性约束,未找到父项关键字怎么解决)
2025年10月15日 22:30
java找不到工作想去送快递了(昌平北大青鸟分享学Java找不到工作的原因)
2026年8月6日 10:45
后台管理系统模板如何使用(开源网店iWeb Shop的模板管理后台怎么操作有什么值得注意的地方)
2025年10月30日 18:15
高级程序设计语言的主要功能(高级语言的控制结构主要包含什么)
2025年12月8日 19:00
mapreduce的优势(hadoop与传统的关系型数据库(如oracle)相比,有什么优势及劣势)
2026年2月12日 15:00
java交互界面怎么做(北大青鸟java培训:常见交互设计表现形式)
2026年3月23日 04:00
pull together(pull together是什么意思)
2026年1月6日 13:30
substantial变形单词(哪些英语单词可以表达 “重要的” 以及它们的区别)
2026年1月13日 17:00
floor和ceil函数(Math之ceil、floor、round区别)
2026年1月22日 22:30
汉化版eclipse(在汉化版eclipse中编写java程序,无法解析start是什么意思)
2025年8月6日 22:30
interesting怎么读英语(“interesting”怎么读)
2026年5月11日 15:45











