java调用matlab中神经网络工具箱编程
一、安装matlab、java,配置好java环境
应为matlab生成jar时直接调用的命令行,所以配置好java的标准就是在cmd里java和javac命令都可以用了~
matlab据说低版本的也不能导出,所以就选个新点儿吧,我的是2010a
二、在matlab中编写function文件
三、运行matlab中的deployment tool,新建一个项目,选择target一定是java的哦~
四、添加类,编辑类名
五、添加刚刚的function文件
六、编译~
至此算是完成了,编译完之后再distrib文件夹下会有一个以你项目命名的jar文件,将这个文件和javabuilder.jar()添加到java程序的运行环境中就可以了,调用方法:
// 训练好的net文件,从matlab中导出的String matStr = "C:/matlab.mat";MWCharArray matPath = new MWCharArray(matStr);// 要进行test的数据double[][] xn_test = { { 71.60 }, { 0.00 }, { 107.41 }, { 110.99 }, { 0.00 } };MWNumericArray test = new MWNumericArray(xn_test, MWClassID.DOUBLE);// 声明打包的类,调用测试方法Net_RBF netRBF = new Net_RBF();Object[] result = netRBF.rbfTest(1, matPath, test);//这个1是指输出结果的数目,具体看distrib下的doc// 输出结果
System.out.println("计算结果是:" + result[0] + "\t");
推荐一篇文章:这个写的详细些,就是看不太清,呵呵
http://www.doczj.com/doc/6bad0d0dec3a87c24128c42c.html/p-55963408.html
遇到的错误:
一、Attempt to use an MWArray that has been disposed
用错对象了,本来是要用new MWCharArray(str);,结果用成了new MWNumericArray(str, MWClassID.CHAR)
二、undefined function or method 'newrb' for input arguments of type 'double”
先说一堆解释: