• Регистрация
aBoomest
aBoomest +942.89
н/д

Как работает функция FindPeaks

05.04.2020

Добрый день.

Как работает функция FindPeaks? Прстой пример на картике. Два пика найдены. А вот пик между ними - нет?

Почему так?

Понятно, что эти две точки имеют одинаковую ординату. Но в реальной жизни же в этом мксте у функции явно максимум. Как выйти из такой ситуации? Есть красивые решения?

Теги

    05.04.2020

    Ответы

    • Marat
      Marat+208.00
      7.04.2020 10:02

      Очень странно. Только что прогнал такие же данные через findpeaks без каких-либо дополнительных параметров - нормально нашёл пик посередине.

      x = 0:15;
      y = [0 0 3 5 7 2 1 4 4 0 8 3 3 2 2 1];
      plot(x,y)
      hold on
      [pks,locs] = findpeaks(y);
      plot(locs-1,pks,'v','MarkerFaceColor','r')
      hold off
      • Skankhunt42
        Skankhunt42+1.00
        7.04.2020 11:03

        MATLAB 2019b, скритп Марата находит средний пик. Может все дело в версии программы?

      • aBoomest
        aBoomest+942.89
        7.04.2020 14:57

        В R2009b не работает
        В R2016а работает

        проблема. Нужно на компе со старым матлабом. Попробую выкрутиться.

        Спасибо.

        PS: Пробовал заменить (вытащить из 2016 и вставить в 2009) - не пошло. Там много функций внутри которых  в старом матлабе нет.

        PSPS: Все ответы в тему. Спасибо. Как выбрать несколько лучших? ))

        • aBoomest
          aBoomest+942.89
          4.11.2020 08:33

          А хотябы на пальцах неи кто не в курсе хоть примерный алгоритм данной функции? Чисто ради понимания, не более.