Java调用MATLAB,javamatlab
分享于 点击 48095 次 点评:77
Java调用MATLAB,javamatlab
一、确定Java版本
1 MATLAB需要的Java版本(我的是2016a)
在MATLAB命令行输入:version -java
2 系统的Java版本
按下win+r,再输入cmd,在命令行中输入:java -version
3 两个Java的版本大版本必须一致,比如我的就是MATLAB为1.7.0_60,那么我的系统Java版本必须为1.7,否则后面编译时会报一堆错比如main函数找不到
二、编译m文件为jar
步骤1:在命令行输入:deploytool,选择第三项
步骤2:依次选择参数
三、配置eclipse
1 安装MATLAB runtime,否则无法调用MATLAB
文件位置:matlab安装目录>>toolbox>>compiler>>deploy>>win64>>MCRInstaller.exe
2 jar
第一个jar:matlab安装目录>>toolbox>>javabuilder>>jar>>javabuilder.jar
第二个jar(第二步编译出来的jar)
可以将两个jar放在桌面
3 eclipse导入jar
在项目上右键>>构建路径(B)>>配置构建路径(最后一个选项)>>java构建路径,点击添加外部jar,选择那两个jar
四、调用
1 初始化类,就是编译时指定的类名,此处为:Class1
Class1 cc=new Class1();
2 初始化参数
(1)输入参数,此处为一个参数:a
int[] t={1,2,3,4,5,6,7,8};
MWNumericArray tin=new MWNumericArray(t,MWClassID.INT16);//此处根据t的类型改变,输入MWClassID再输入“.”就会出现选项
(2)输出参数,此处为两个参数:x和y
Object[] result=null;//固定写法,输出参数将会传递到result中,再解析出来
3 调用,此处函数为之前编译的类Class1中的方法dealOWresult=cc.deealOW(2,tin);//这里的第一个参数2:代表有几个输出参数
4 从result中得到输出参数,此处的输出参数(自己确定类型):x为int类型,y为int[]类型
使用result[0].getClass()可以得到实际类型为MWNumericArray,所以先转为MWNumericArray类型,再使用内置方法各种操作
int x=((MWNumericArray)result[0]).getInt();
int[] y=((MWNumericArray)result[1]).getIntData();
实际上还有很多方法:getDouble(),getDimension(),columnIndex()。。来分析输出的参数相关文章
- 暂无相关文章
用户点评