Работая в С#, мне нужно найти все локальные пики в списке двойников и вернуть их в качестве другого списка. Это кажется достаточно простым, если у меня есть определенное количество значений, которые я сравниваю в любом заданном "окне" значений, но мне нужно иметь возможность фактически передать этот размер окна в саму функцию. Это может ввести в заблуждение, но в основном мне нужно что-то вроде этого:
public List<double> FindPeaks(List<double> values, double rangeOfPeaks)
где, если "rangeOfPeaks" равен 5, "текущее" значение сравнивается с 2 значениями с каждой стороны, чтобы определить, был ли он пиком или нет. Если "rangeOfPeaks" равно 11, текущее значение сравнивалось бы с 5 значениями с каждой стороны. Я думаю, что это был довольно простой алгоритм, однако я не смог найти хорошие методы для обнаружения такого пика. Кто-нибудь когда-либо делал это раньше? Любая помощь вообще будет оценена по достоинству. Спасибо заранее!