Как работает функция FindPeaks
05.04.2020
Добрый день.
Как работает функция FindPeaks? Прстой пример на картике. Два пика найдены. А вот пик между ними - нет?
Почему так?
Понятно, что эти две точки имеют одинаковую ординату. Но в реальной жизни же в этом мксте у функции явно максимум. Как выйти из такой ситуации? Есть красивые решения?
Ответы
Здравствуйте. У функции
findpeaks
много параметров, поиграйтесь с ними. Например, можно затребовать определенное количество пиков ('NPeaks'
):https://docs.exponenta.ru/signal/ref/findpeaks.html
https://mathworks.com/help/signal/ref/findpeaks.html
А может быть, для такого сигнала лучше подойдет функция
islocalmax
, там даже пример похожий есть:https://docs.exponenta.ru/matlab/ref/islocalmax.html
https://mathworks.com/help/matlab/ref/islocalmax.html
Очень странно. Только что прогнал такие же данные через findpeaks без каких-либо дополнительных параметров - нормально нашёл пик посередине.
MATLAB 2019b, скритп Марата находит средний пик. Может все дело в версии программы?
В R2009b не работает
В R2016а работает
проблема. Нужно на компе со старым матлабом. Попробую выкрутиться.
Спасибо.
PS: Пробовал заменить (вытащить из 2016 и вставить в 2009) - не пошло. Там много функций внутри которых в старом матлабе нет.
PSPS: Все ответы в тему. Спасибо. Как выбрать несколько лучших? ))
А хотябы на пальцах неи кто не в курсе хоть примерный алгоритм данной функции? Чисто ради понимания, не более.