Trabajando en C#, necesito encontrar todos los picos locales en una lista de dobles y devolverlos como otra lista de dobles. Esto parece bastante simple si tengo un número de valores que estoy comparando en una "ventana" de valores dada, pero necesito poder pasar este tamaño de ventana a la función misma. Esto puede ser confuso, pero básicamente necesito algo como esto:Búsqueda de máximos locales en un rango dinámico
public List<double> FindPeaks(List<double> values, double rangeOfPeaks)
donde si 'rangeOfPeaks' fue 5, el valor 'actual' se compararía con 2 valores en cada lado de la misma para determinar si se trataba de una pico o no. Si 'rangeOfPeaks' fuera 11, el valor actual se compararía con 5 valores en cada lado. Creo que este es un algoritmo bastante básico, sin embargo, no he tenido éxito en encontrar ningún buen método para detectar un pico como este. ¿Alguien había echo esto antes? Cualquier ayuda sería apreciada. ¡Gracias por adelantado!
¿qué paso necesitas? 1 o rangeOfPeeks? (Desea ~ valores.Los resultados o valores largos.Los resultados de longitud/rangoOfPeaks?) – Guillaume86