将m文件打包成jar包使用
将基于平稳小波变换和非线性能量毛刺检测打包成jar包后使用
具体新建java项目参考:
https://blog.csdn.net/qq_19865749/article/details/68932949
本次试验用的程序如下:
package com;
import com.mathworks.toolbox.javabuilder.MWClassID;
import com.mathworks.toolbox.javabuilder.MWException;
import com.mathworks.toolbox.javabuilder.MWNumericArray;
import com.mathworks.toolbox.javabuilder.MWArray;
import Detection.SpikesDetection;
import com.FileUtils.*;
import java.util.List;
/* 输入输出数据与MWNumericArray参考: https://blog.csdn.net/cuiguanjun/article/details/52839986 https://blog.csdn.net/qq_22771739/article/details/81502230 */
public class Demo {
public static void main(String[] args) throws MWException {
SpikesDetection sd = new SpikesDetection();
List<String> strings = FileUtils.readFileContent("E:\\matlab_prj\\maoci.csv");
int n = 512;
//1xn数组,n必须为2的N次方
double [][] array =new double[1][n]; //
for(int i=0; i< n; i++){
array[0][i] = Double.parseDouble(strings.get(i));
}
MWNumericArray inputWave = new MWNumericArray(array, MWClassID.DOUBLE);
//第一个数表示输出多少个矩阵,1表示输出一个矩阵
// 后面的不定参数表示输入的矩阵,第一个参数表示输入的数据数组,里面数量必须为2的N次方,第二个参数表示阈值,第三个参数表示是否打印图像
Object[] objects2 = sd.spikesDetection(1, inputWave, 0.5, 1);
MWNumericArray output2 = (MWNumericArray)objects2[0];
int[] intData2 = output2.getIntData();
for(int i=0 ;i< intData2.length; i++){
//输出如果下标为1,则该位置为毛刺
System.out.println(intData2[i]);
}
//释放本地资源
//MWArray.disposeArray(output);
//MWArray.disposeArray(objects);
//sd.dispose();
}
}
还没有评论,来说两句吧...