要找出一组数据中的所有波峰位置及数字,以及波峰之间的间隔,可以按照以下步骤进行:

  1. 定义一个空列表 peaks 用于存储波峰的位置和数字,定义一个空列表 gaps 用于存储波峰之间的间隔。
  2. 遍历数据列表,从第二个元素开始,直到倒数第二个元素结束,对于每个元素 data[i]
    • 检查当前元素是否大于其前一个元素 data[i-1] 和后一个元素 data[i+1],如果是,则将该元素及其索引 (i, data[i]) 添加到 peaks 列表中。
  3. 遍历波峰列表 peaks,从第二个波峰开始,计算当前波峰位置与前一个波峰位置之间的间隔,将其添加到 gaps 列表中。
  4. 返回 peaks 列表和 gaps 列表。

以下是一个示例代码:

List<Integer> findPeaksAndGaps(List<Integer> data) {
    List<Integer[]> peaks = new ArrayList<>();
    List<Integer> gaps = new ArrayList<>();

    for (int i = 1; i < data.size() - 1; i++) {
        if (data.get(i) > data.get(i-1) && data.get(i) > data.get(i+1)) {
            Integer[] peak = {i, data.get(i)};
            peaks.add(peak);
        }
    }

    for (int i = 1; i < peaks.size(); i++) {
        int gap = peaks.get(i)[0] - peaks.get(i-1)[0];
        gaps.add(gap);
    }

    return peaks;
}

注意,上述代码使用了 List<Integer> 来表示数据列表,其中的元素为整数。在实际使用时,你需要根据具体情况来替换为适合的数据类型

android 找出一组数据所有的波峰位置及数字及波峰之间的间隔

原文地址: https://www.cveoy.top/t/topic/iMhl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录