之前做脉搏采集时需要对数据进行滤波等处理,但是用Java处理显然没有直接用matlab的函数来得简单,下面是具体过程:
1、在matlab中写好一个根据数据文件计算心率的函数:
1
2
3
4
5
6
7
8
9
10
11
12
13function HeartRate = purehr(fileName,total_time) fileData = load(fileName); %读取脉搏数据数据txt文件 values = fileData(:,1); %读取第一列数据 sizeOfFile = length(values); %获取数据长度 values = medfilt1(values,4); %平滑 values = smooth(values ,70); count = 60; %脉搏波动出现次数,根据values求得,网上有很多思路,这里随便设定个60 HeartRate = 60 * count / total_time; %一定时间内的平均心率
2、函数手动验证能达到预期效果后进行打包:
在命令窗口键入deploytool,选择Library Compiler:
选择Java Package,点击右边的蓝色加号选择你刚刚写好的m文件:
选择后如图:
拉到下面,更改下Class Name,点击右上角的绿勾勾Package:
提示保存,这是在保存工程文件,随意选择你的目录:
然后,就开始编译打包了,等待即可,过程可能比较久:
编译完成,打开for_redistribution_files_only文件夹,里面的jar文件就是我们需要的程序包了:
3、使用jar包,我用的是IntelliJ IDEA :
除了刚才Matlab编译出来的purehr.jar,还需要到Matlab目录下,我的目录是:
D:Program FilesMATLABR2016btoolboxjavabuilderjar下找到javabuilder.jar,把它也复制出来,放到一个你能找到的地方。
在IntelliJ IDEA左侧的工程目录打开Library Settings:
在Module中,点击右侧绿色加号把purehr.jar和javabuilder添加进来,最后点击OK即可。
最后是在JAVA使用:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25package com.company; import com.mathworks.toolbox.javabuilder.MWException; import purehr.PureHearRate; import java.io.*; import java.util.ArrayList; import java.util.Random; public class Main { public static void main(String[] args) { // write your code here try { PureHearRate pureHearRate = new PureHearRate(); Object[] results; //用的是集合 //pureHeartRate.purehr(),第一个参数是有几个输出结果,在这里我们只有一个:HearRate,第二个参数是文件路径,第三个是总时间 results = pureHearRate.purehr(1,"C:\Users\Administrator\Desktop\TXT\a.txt",50); System.out.println("心率是: " + results[0].toString());//多个输出则:results[1].toString(),results[2].toString()... } catch (MWException e) { e.printStackTrace(); } } }
结果:
如有错误或不清楚的地方,还请各位指正!
最后
以上就是强健老师最近收集整理的关于Java中使用Matlab打包的JAR包程序的全部内容,更多相关Java中使用Matlab打包内容请搜索靠谱客的其他文章。
发表评论 取消回复