Matlab与Java混合编程的教程_ShyBoyes的专栏-CSDN博客_java matlab混合编程
如果有多个返回参数
Java中调用MatLab返回值_weixin_30335575的博客-CSDN博客
例如:
Java中求矩阵特征值和特征向量,可以选择直接调用matlab接口:
首先在matlab中建立.m文件,将函数写出来
function [X,B] = caculateEigen(A) [X,B]=eig(A)
之后在matlab中通过命令行输入“deploytool”将m文件打包生成jar包
调用jar包来进行矩阵运算
CaculateEigen ce = new CaculateEigen(); Object[] rs = ce.caculateEigen(2,arr);//arr为输入矩阵,2为接受两个返回值
注意:
matlab中eig函数要求传入参数必须为单精度或双精度,因此arr数组需要使用double或int类型
如果只需要结果,且通过窗口输出展示,而不需要对结果进行处理,就不用接受返回值,因此可以不加Object[] rs,直接
ce.caculateEigen(2,arr);
注意其中接受返回值的个数写1或2都可以,但必须要有,因为caculateEigen方法要求的传入参数的个数必须要有一个值
可以看到,java命令窗口的输出形式保留了matlab的输出格式
在过程中遇到的一些问题:
matlab打jar包失败:
1.看看路径是否有中文
2.查看matlab的jdk版本和系统jdk版本是否一致,如果不一致打包可能或出现警告或错误(可能长时间卡在打包的一阶段)