java与matlab交互!方式有很多种!我采用的是以下方式:
先将.m文件转为com组件!其次使用jawin调用com组件
配置:jdk1.5 matlab7.4
具体实现:
1. matlab command window 输入deploytool 通过deployment tool将m文件生成com组件
2. 下载jawin ,配置dll放入系统path jar包导入classpath
3. 书写java代码
try {
Ole32.CoInitialize();
DispatchPtr app = new DispatchPtr(
"addcomponent.addcomponentclass.1_0");//program id
ByrefHolder myout = new ByrefHolder(new String(""));//输出
Object[] obj = { 1, myout, 5, 6 };//1为输出个数 5,6分别为m文件输入参数
app.invokeN("add", obj);
double[] d = (double[]) myout.getRef();//m文件返回值
return d[0];
} catch (COMException e1) {
// TODO Auto-gener,ated catch block
e1.printStackTrace();
return 0;
}
matlab还有更好的方式使java与matlab交互!
deploytool
新建:matlab builder for java
添加m文件 点击build the project 就可以生成.ctf与.jar文件
复制两个文件到lib下 唯一还需要注意的一点就是 一定要同时复制matlab\toolbox\javabuilder\jar\javabuilder.jar到lib下
这样可以轻松交互 而且要爽的多!比调com