此處的任務是從矢量中查找局部最大值(範圍)或最小值的數量。我知道如何找到局部最大值/局部最小值(圖中的一個點),然而,局部最大值現在聚集在向量中。從C++中的向量中查找局部最大值/局部最小值(範圍)的數量
爲了給出一個清晰的概念,繪製出從向量中的值會產生類似這樣:
簡單來說,我想找到的峯值數。在這種情況下,6.然而,峯不是單點,而是一系列值。我怎樣才能從矢量中找到峯值的數量(局部最大值的範圍)?
將不勝感激,如果可以有一些僞代碼,代碼示例,如果沒有,建議也將讚賞。我爲這個項目使用了Visual Studio C++,以及QWT,QT和OpenCV。
所有的極大值都具有大致相同的值嗎?最大值範圍的最小長度是多少?例如,不是第一個(值爲0.25)後的小峯值被認爲是最大值? –
我希望避免將這些小峯作爲最大值計入。我有一個想法是添加一個條件。條件將是這樣的,如果該值低於某個數字,則不符合最大值。我打算如何獲得特定數字是:(矢量中非零值的總和)/(矢量中非零值的總數)。 – rockinfresh
除此之外,所有最大值都具有大致相同的值。 – rockinfresh