当前位置: 首页 > news >正文

SpringBoot集成Matlab软件实战

在项目中处理矩阵等复杂数据结构的时候,可以用Matlab程序来运行,其优点是很多的。

        专用工具箱和强大的矩阵运算能力:MATLAB 拥有强大的数学工具箱和优化工具箱,适合处理大规模矩阵运算以及水文模型的率定。MATLAB 的 Optimization Toolbox 可以方便地执行模型率定中的参数优化过程。

        内置可视化和数据处理能力:MATLAB 提供内置的绘图和数据处理工具,可以方便地对率定和验证结果进行可视化分析。

        广泛应用于科研:MATLAB 广泛应用于学术界,特别是在水文学、环境工程等领域中,有许多经典的水文模型(如 HBV、SWAT)都有 MATLAB 实现版本。

下面直接开始实战集成使用。

1、pom文件引入

       <dependency><groupId>org.n52.matlab</groupId><artifactId>matlab-control</artifactId><version>5.0.0</version></dependency>

2、代码配置启动

import org.n52.matlab.control.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class MatlabConfiguration {//matlab单例启动一次@Bean(name = "matlab")public MatlabProxy createFactory() throws MatlabConnectionException, MatlabInvocationException {// 手动设置 MATLAB 安装路径,一般情况下不需要设置,除非此服务器上安装了多个matlab程序// System.setProperty("java.library.path", "/path/to/specific/matlab/version/bin");// 配置 MATLAB Proxy 工厂/*  MatlabProxyFactoryOptions options = new MatlabProxyFactoryOptions.Builder().setUsePreviouslyControlledSession(true) // 重用 MATLAB 会话.setHidden(true) // MATLAB 不显示界面.build();MatlabProxyFactory factory = new MatlabProxyFactory(options);*/MatlabProxyFactory factory = new MatlabProxyFactory();//造成频繁启动显示页面MatlabProxy proxy = factory.getProxy();// 调用 MATLAB 函数proxy.eval("disp('Using specified MATLAB version!')");System.out.println("启动matlab完成");return proxy;}
}

3、业务层或者控制层依赖注入

    @Autowiredprivate MatlabProxy matlabProxy;

4、测试代码执行matlab命令

        String matlabCommand = "result = sum([0,1, 2, 3, 4, 5])";matlabProxy.eval(matlabCommand); // 让 MATLAB 执行命令// 获取 MATLAB 的计算结果Object result = matlabProxy.getVariable("result");double[] r=(double[]) result;System.out.print("f:");for (int i = 0; i < r.length; i++) {System.out.print(r[i]);}

5、测试代码执行Matlab函数

        Object[] result1 = matlabProxy.returningFeval("yd_demo", 5,2);// double[] key=(double[]) result1[0];for (int j = 0; j < result1.length; j++) {double[] key=(double[]) result1[j];for (int i = 0; i < key.length; i++) {System.out.println(key[i]);}}

对应的Matlab函数yd_demo.m 文件内容

function [output1, output2, output3, output4, output5] = test(input)% This function takes one input and returns 5 outputs% Example: if input = 2, output1 =% input*1, output2 = input*2, etc.% 加载 data.mat 文件loadedData = load('data.mat'); % 加载文件中的所有变量data = loadedData.data; % 提取 data 变量in.dat = data{1};output1 = input * 1;output2 = input * 2;output3 = input * 3;output4 = input * 4;output5 = input * 5;disp(output5)
end

 页面展示

注意:需要把使用到的*.m、*.mat等函数文件放到根目录下,即项目的pom.xml文件放在同一个文件夹下!图中也可以看到。这里JDK是1.8版本。

6、matlab安装参考

2024版本安装

到此、SpringBoot集成Matlab软件实战分享完成,后面继续更新更高级的内容,敬请期待!

http://www.lryc.cn/news/449056.html

相关文章:

  • Java---异常及处理
  • 【开源免费】基于SpringBoot+Vue.JS网上购物商城(JAVA毕业设计)
  • 添加vscode插件C/C++ snippets,快速生成LVGL .c/.h文件模版
  • ee trade:如何辨别足金真假
  • GCC使用入门
  • CSS3 字体
  • LeetCode题练习与总结:为运算表达式设计优先级--241
  • 金融科技革命:API接口开放平台,畅通金融服务之路
  • Java8后新特性介绍
  • Arthas monitor(方法执行监控)
  • 语言的副作用
  • centos磁盘逻辑卷LVM创建
  • BUUCTF蜘蛛侠呀
  • 大数据新视界 --大数据大厂之基于 MapReduce 的大数据并行计算实践
  • win自带录屏怎么用?让视频制作更简单!
  • 修改Kali Linux的镜像网站
  • Docker精讲:基本安装,简单命令及核心概念
  • 利用git将项目上传到github
  • 828华为云征文 | 华为云X实例CPU性能测试详解与优化策略
  • ass字幕文件怎么导入视频mp4?ass字幕怎么编辑?视频加字幕超简单!
  • camunda + oracle 启动报错 解决方法
  • 变幅液压系统比例阀放大器
  • 在 Ubuntu 安装 Python3.7(没有弯路)
  • Linux 简易shell编写
  • POLYGON Nature - Low Poly 3D Art by Synty 树木植物
  • 了解什么是瞪羚企业
  • 寻找两个正序数的中位数(C)
  • YOLOv10涨点改进:IoU优化 | Unified-loU,用于高品质目标检测的统一loU ,2024年8月最新IoU
  • Spring Boot 实现动态配置导出,同时支持公式和动态下拉框渲染和性能优化案例示范
  • 一网打尽 运维必封的50个高危端口清单,零基础入门到精通,收藏这一篇就够了