Java调用MATLAB

来源:互联网 发布:whatsapp mac版 编辑:程序博客网 时间:2024/06/08 14:37

一、确定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中的方法dealOW

result=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()。。来分析输出的参数


原创粉丝点击