Как указать количество вершин в Python - PullRequest
0 голосов
/ 05 июня 2018

До сих пор я нашел 4 способа найти пики в Python, однако ни один из них не может указать количество пиков, как это делает Matlab.Может ли кто-нибудь дать некоторое представление?

import scipy.signal as sg
import numpy as np

# Method 1
sg.find_peaks_cwt(vector, np.arange(1,4),max_distances=np.arange(1, 4)*2)

# Method 2
sg.argrelextrema(np.array(vector),comparator=np.greater,order=2)

# Method 3
sg.find_peaks(vector, height=7, distance=2.1)

# Method 4
detect_peaks.detect_peaks(vector, mph=7, mpd=2)`

Ниже приведен код Matlab, который я хочу эмулировать:

[pks,locs] = findpeaks(data,'Npeaks',n)

1 Ответ

0 голосов
/ 05 июня 2018

Если вам нужна точная функция, которую имеет Matlab, почему бы просто не использовать эту функцию?Если у вас есть остальные данные в Python, то вы можете просто использовать модуль , предоставленный Matlab.

import matlab.engine #import matlab engine
eng = matlab.engine.start_matlab() #Start matlab engine

a = a = [(0.1*i)*(0.1*i-1)*(0.1*i-2) for i in range(50)] #Create some data with peaks
b = eng.findpeaks(matlab.double(a),'Npeaks',1) #Find 1 peak
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...