JAVA调用matlib算法

162 阅读1分钟

利用MATLAB写好相应的计算函数,然后打包成jar包供Java调用,或者JAVA调用MatLab展现一些二维三维图,可有效发挥MatLab的优势。

一:注意事项

1: MatLab的版本必须是2006b+(包括2006b或更高版本),因为只有在这些版本中才有MATLAB Builder for Java(也叫Java Builder)。

2: 运行机器上必须装有JRE 并且版本要和MatLab自带的jre 大版本保持一致(位数也要保持一致)

可用:version -java 查看Matlab的JDK版本号

image.png 目前主要是jdk 1.7和1.8

MATLAB R2016a、R2016b 使用 JDK 1.7

MATLAB R2017a - R2024a,‌使用 Java 1.8

二:示例算法

function [volume,area] = mysphere(height,width, depth)
volume = height*width*depth;
area = height*width;

三:导出jar

我用的jdk1.8,matlab2018a

1、命令行窗口输入deploytool——选择Library Compiler ;

image.png 2、选择Java package;添加.m文件;填写打包信息

image.png

第5步两个选项,选第一个时打包体积小,但需要运行的机器上有Matlab Runtime; 选第2个打的包中包涵Runtime依赖,体积大,但随处可执行。

3、将打包后的mysphere.jar 和 javabuilder.jar引入项目

image.png

四、程序调用函数

public static void main(String[] args) {
    Mysphere mysphere = null;
    try {
        mysphere = new Mysphere();
        Object[] objects = mysphere.mysphere(2, 2,3,4);
        for (Object obj : objects ) {
            System.out.println(obj);
        }
    } catch (MWException e) {
        throw new RuntimeException(e);
    } finally {
        if (mysphere != null) {
            mysphere.dispose();
        }
    }
}

image.png