java调用matlab函数

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版本是否一致,如果不一致打包可能或出现警告或错误(可能长时间卡在打包的一阶段)

原文地址:https://www.cnblogs.com/Arisf/p/14953109.html