使用安卓 java查找峰值
我试图编码,如果斜率的符号值从正变为负,那么这个值就是我的传感器压力峰值。即使找到了峰值,也可能会有另一个峰值,因为压力在增加。 我该怎么做?提前谢谢你
for (int i =1;i<strNumbers.length -2;i++){ //strNumber is the array stream from sensor.
String y1;
y1 = strNumbers[i];
String y2;
y2 = strNumbers[i+1];
float y_2 = Float.parseFloat(y2);
float y_1 = Float.parseFloat(y1);
float delta_y = y_2 - y_1;
float mySlope = 0;
float delta_x;
delta_x = 1; //always difference is 1.
mySlope = (delta_y / delta_x);
activity.FirstPeak.setTextColor(Color.RED);
activity.FirstPeak.setText(String.valueOf(mySlope));
}
# 1 楼答案
在循环中的每个点上,你需要比较两个渐变——左边的渐变和右边的渐变。如果左边是正的,右边是负的,那么你已经找到了一个峰值
现在有了一个数组,包含所有峰值的索引。你可以这样找到绝对最大值:
你可以找到这样的峰间距离: