SpringBoot项目调用Matlab方法
创始人
2024-02-10 13:06:11
0

SpringBoot项目调用Matlab方法

      • 需求
      • 环境准备
      • 步骤
        • Matlab方面
        • java方面
        • 结果

需求

java调用matlab的函数

环境准备

Matlab,jdk,maven管理的springboot项目

步骤

Matlab方面

  1. 准备一个简单函数
function [x,y,z] = jarDemo(arg)
disp("hello world from matlab");
disp(arg);
x = 1;
y = 2;
z = 3;
end
  1. 安装CompilerCompiler SDK,如果没有的话在命令行运行deploytool命令时会报错,会提示安装三个东西,并且点击下划线的红字可以直接打开这两个附件的安装窗口,安装即可(需要正版?)
  2. 安装之后上方工具栏的APP下可以找到Library Compiler在这里插入图片描述
  3. 点击之后出现一个窗口,窗口的TYPE栏里会有各种语言的库,如果只安装了Compiler而没有安装Compiler SDK的话TYPE栏只会有一个Excel Add-in,没法用;选择Java Package,点击加号找到需要打成jar包的函数文件jarDemo.m,可以改一下类名,这个随意,最终找个文件夹导出即可在这里插入图片描述

java方面

  1. 找到导出的文件夹下的for_redistribution_files_only\jarDemo.jar,这是一个jar包,还需要一个Matlab\toolbox\javabuilder\jar\javabuilder.jar,这两个jar包,复制一下,复制到哪里呢,springboot项目的src\resources目录下,新建一个lib目录,复制进去
    在这里插入图片描述
    右键lib目录“添加为库”,添加到项目还是模块随你,然后这项目结构-模块-依赖里就能看到添加的这个lib文件夹了,就可以在代码里import这个类了
  2. 新建一个测试类
import jarDemo.TestClass; // 这个是我们自己写的jarDemo.m函数
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;
import com.mathworks.toolbox.javabuilder.*; // 这个是必须的,对matlab的支持
public class matlabTest
{private static final Logger log = LoggerFactory.getLogger(matlabTest.class);@Testpublic void test1() {log.info("开始运行");try {TestClass t = new TestClass();Object[] result = t.jarDemo(3, "ok?"); //第一个参数是指定返回结果的个数;第二个参数起是传入matlab函数的参数,多个用逗号隔开。for (Object obj : result){log.info(obj.toString());}} catch (MWException e) {e.printStackTrace();}log.info("运行结束");}
}

结果

jarDemo.m里的disp在IDEA控制台输出了,t.jarDemo()的第二个参数"ok?"也传到了matlab代码里,也disp了,返回的三个结果x,y,z也打印出来了

相关内容

热门资讯

新华社权威速览|九三纪念活动,... 中国人民抗日战争暨世界反法西斯战争胜利80周年纪念活动新闻中心8月28日举办记者招待会,介绍纪念活动...
原创 2... 在国际关系中,核裁军始终是一个热点话题。当今世界的和平与安全不仅依赖于各国的合作与对话,也受制于历史...
外方嘉宾全名单公布 8月28日上午,中国人民抗日战争暨世界反法西斯战争胜利80周年纪念活动新闻中心在梅地亚新闻中心二层新...
30个小时强降雨停了!北京入汛... 今天清晨,下了30个小时的雨水总算是停了。气象部门介绍,8月26日夜间至28日凌晨,本市出现强降雨,...
2025年全国民营企业500强... 极目新闻记者陈红 何佳仪 8月28日,全国工商联正式发布“2025中国民营企业500强”榜单。京东集...
重磅交易!曝广东男篮签约崔永熙... 北京时间8月28日消息,据悉,今日上午,经过漫长的谈判,广东宏远和广州龙狮达成了一系列交易。 广东宏...
科教用地被用于生产经营,这公司... 文/Ronald 摘要:公司申报北交所IPO。公司主营业务为冷链设备智能控制器、医药与食品冷链监测记...
高端私人伴游变色情交易?律师解... 中新网北京8月28日电(记者 王诗尧)近日,有媒体曝光部分色情交易伪装成高端私人伴游服务,大打“擦边...