概述
先简单的介绍一下数据分析(百度百科:数据分析)与数据挖掘(百度百科:数据挖掘)。
- 数据分析:使用适当的统计方法对收集来的大量数据进行分析,为了提取有用信息和形成结论而对数据加以详细研究和概括总结地过程(典型的例子: Excel 数据透视表);
- 数据挖掘:从大量的数据中通过算法搜索隐藏于其中的信息(典型的例子:机器学习处理鸢尾花数据集)。
总之,数据分析与数据挖掘是紧密相连、相辅相成的,数据分析的结果需要进行进一步数据挖掘才能发挥更大的价值;而数据挖掘在进行价值评估的过程中也需要调整先验约束而再次进行数据分析。
目前主流的数据分析 / 数据挖掘的工具有R、SPSS、Python等。而MATLAB虽然难以超过一众火热的数据分析 / 数据挖掘的工具,但本身作为一门面向过程的语言,以简洁的语法和强大的库函数也受到了很多用户的青睐。在开发JAVA项目的过程中,某个子模块可能需要进行数据分析 / 数据挖掘,这时就通常需要使用现有的JAVA的框架或调用外部接口等。
本文介绍在MATLAB中将程序打为jar包、在IDEA中导入、在JAVA中定义的类中调用在MATLAB中自定义的函数以进行数据分析 / 数据挖掘(本文以MATLAB 2020b为例)。
PS:经过在多台机器上实验,MATLAB2016与2017有时会在程序打包一步报错(二者的内置JAVA版本均为1.7),为了能正常打包,推荐使用高版本MATLAB(经测试MATLAB的JAVA版本为1.8时可以正常打包)
在MATLAB中将程序打为jar包
首先必须保证MATLAB的位数和JAVA版本与Windows系统或IDEA项目的JAVA大版本一致(比如都是1.8)。
- 查看MATLAB JAVA版本:在命令行中输入
version -java
。 - 查看Windos系统JAVA版本:在命令提示符中输入
java -version
- 根据需求编写MATLAB程序(以两数相加为例,由于MATLAB本身的性质,在JAVA端也可以直接用此函数计算两个列表的和)。
- 在命令行中输入
deploytool
,在弹出的窗口中选择Library Compiler
用于打jar包。 - 打为jar包。
- 打包成功后会生成一个Addition文件夹(该文件夹是在打包时命名的),在路径
Addition\for_redistribution_files_only
下可以找到我们所需的jar包。
将jar包导入IDEA并调用
- 在IDEA中选择“File=>Project Structure=>Libraries”,将上述操作生成的jar包添加到IDEA中。由于需要依赖MATLAB的相关函数,因此也需要把MATLAB自带的
javabuilder.jar
添加到IDEA,javabuilder.jar
是在安装MATLAB时自带的jar包,该jar包的路径为...\MATLAB2020b\toolbox\javabuilder\jar\javabuilder.jar
。 - 在JAVA程序中调用(请忽略37行的报错,这里是一定需要抛出异常的,但是我的底层代码出了一点问题)。
- 运作结果。