C# 查询波峰、波谷

代码如下:

/// <summary>
/// 寻峰(查找波峰或者波谷)
/// </summary>
/// <param name="data">数据源</param>
/// <param name="IsTrough">0:波峰 1:波谷 2:波峰和波谷</param>
/// <returns></returns>
public static int[] FindPeaks(double[] data,int PeakStyle)
{
    double[] diff = new double[data.Length - 1];
    for (int i = 0; i < diff.Length; i++)
    {
        diff[i] = data[i + 1] - data[i];
    }
    int[] sign = new int[diff.Length];
    for (int i = 0; i < sign.Length; i++)
    {
        if (diff[i] > 0) sign[i] = 1;
        else if (diff[i] == 0) sign[i] = 0;
        else sign[i] = -1;
    }
    for (int i = sign.Length - 1; i >= 0; i--)
    {
        if (sign[i] == 0 && i == sign.Length - 1)
        {
            sign[i] = 1;
        }
        else if (sign[i] == 0)
        {
            if (sign[i + 1] >= 0)
            {
                sign[i] = 1;
            }
            else
            {
                sign[i] = -1;
            }
        }
    }
    List<int> result = new List<int>();
    for (int i = 0; i != sign.Length - 1; i++)
    {
        if (PeakStyle == 0)
        {
            if (sign[i + 1] - sign[i] == -2)
            {
                result.Add(i + 1);
            }
        }
        else if (PeakStyle == 1)
        {
            if (sign[i + 1] - sign[i] == 2)
            {
                result.Add(i + 1);
            }
        }
        else if(PeakStyle == 2)
        {
            if (Math.Abs(sign[i + 1] - sign[i]) == 2)
            {
                result.Add(i + 1);
            }
        }
    }
    return result.ToArray();//相当于原数组的下标
}
  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 对于字母"c",我们可以从多个角度进行回答。 首先,“c”是英文字母表的第三个字母。它的发音类似于“西”,是一个辅音字母,而不是元音字母。在英语单词,它可以以不同的发音出现,如在“cat”发音为/k/,在“city”发音为/s/,在“chocolate”发音为/tʃ/等。此外,英文还有一些特定的词汇和短语以字母"c"开头,如“car”(车)、“cat”(猫)、“computer”(电脑)等。 另外,对于计算机领域来说,字母“c”也有特殊的含义。它是一种编程语言,被广泛用于软件开发和系统编程。C语言由贝尔实验室的Dennis Ritchie在20世纪70年代早期开发,是一种结构化的、高级的程序设计语言。它具有强大的底层编程能力和广泛的应用领域,例如操作系统、编译器、数据库和网络等。 此外,字母“c”在化学元素周期表也代表着碳元素(Carbon)。碳是地球上最常见的元素之一,它的原子号是6,原子量为12.01。碳的存在形式多样,可以形成各种化合物,用途广泛,如有机化学的有机物、燃料燃烧生成的二氧化碳等。 总之,字母“c”在不同情境下具有不同的含义,无论是作为一个英文字母、一种编程语言还是一个化学元素,都承载着特定的意义和重要的用途。 ### 回答2: c是英文字母表的第三个字母,也是编程语言的一种。在数学,c通常表示一个常数,表示一个固定的值。在化学,C是碳的化学符号。在物理,c代表光速,也就是光在真空传播的速度。在音乐,C代表唱名Do。在计量学,C代表摄氏度的单位。 在计算机科学,C是一种高级编程语言,也是一种很强大的语言。它是由贝尔实验室于1972年开发的,主要是为了开发UNIX操作系统而设计的。C语言以其简洁、高效和强大的功能而闻名,被广泛用于系统开发、嵌入式系统和应用程序开发。 C语言具有很多特点,包括直接的内存访问、底层控制、高速执行等。它提供了丰富的数据类型,如整型、字符型、浮点型等,并且支持自定义数据类型的定义。C语言还提供了很多控制结构,如循环、条件和分支等,使得程序的逻辑结构清晰明了。 C语言也是学习其他高级编程语言的基础。许多编程语言都是以C语言为基础开发的,如C++、Java、Python等。因此,掌握C语言可以为学习其他编程语言打下坚实的基础。 总之,C语言是一种强大而广泛应用的编程语言,具有许多特点和能力。它是计算机科学非常重要的一部分,对于学习编程和系统开发非常有帮助。 ### 回答3: 题目提供的信息太过简洁,无法理解您具体想获得什么样的回答。请提供更多详细的背景信息或明确您的问题,以便我能更好地回答您的疑问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值