matlab中找极大值

Matlab中,求数组的极大值与极小值

我有一组数据如何用matlab找出所有的极大值点和极小值点?



解决办法:

假定data是你的数据, 


极大值的位置 :
find(diff(sign(diff(data)))==-2)+1 


解释:

假定数组中的极大值点的index为Pa,

diff(data)在

index=Pa-1应该是正值,sign(Pa-1)=1

index=Pa应该是负值,sing(Pa)=-1

因此,diff(sign(diff(data)))在index=Pa-1处为-2

故find(diff(sign(diff(data)))==-2)+1 就是Pa


注意:上述只适用于与极大值点Pa邻近的点Pa-1,Pa+1的值均小于Pa的情况。

但是,按照极大值的定义,点Pa-1,

你可能感兴趣的:(matlab,matlab)