最近项目有个简单的数据分析需求,求散点数的趋势线斜率,但是java没有现成的类库,于是乎就想到Matlab,一查果然可以轻松实现,下面就把事先过程逐一记录。
运行环境:
- Jdk1.7 64-Bit
- Matlab R2016b
注意:
- 安装Matlab版本支持Jdk版本以及安装位数必须一致,在命令行窗口输入:version -java 回车。
期望效果:
给定一组散点数(有序),通过matlab的polyfit曲线拟合函数最终求出散点数的斜率。散点数作为函数参数传入,并且最终的斜率作为函数的返回值进行返回。
最终效果需要在java程序中调用,java代码传图散点数参数,并且接收斜率返回值。
废话少说。直接开干……
Matlab代码
1 | % slope 返回值 ,y 输入参数 |
保存为**.m文件,这里我保存为javaCallMatlabPolyfit.m
Matlab代码打包为jar文件
在matlab命令行窗口输入:deploytool,调出Compiler窗口。
- 点击Library Compiler
稍等片刻……
上图为最后生成的jar文件。
Java代码
引入jar:
这里需要特别注意,需要单独引入两个jar文件:
- 刚才通过matlab软件导出的jar文件;
- 环境运行用到jar,在matlab安装文件下:\toolbox\javabuilder\jar\javabuilder.jar
测试
1 | /** |
最后贴上运行结果图:
越努力,越幸运……