• [转载][转]Matlab-寻找峰值函数


     转载注明出处:http://write.blog.csdn.net/postlist

    方法一:


    findpeaks 寻找峰值函数


    pks = findpeaks(data)

    [pks,locs] = findpeaks(data) ------pks 对应峰值,locs 对应峰值位数

    [...] = findpeaks(data,'minpeakheight',mph)----mph 设定峰值的最小高度

    [...] = findpeaks(data,'minpeakdistance',mpd)----mpd 设定两峰值间的最小间隔数

    [...] = findpeaks(data,'threshold',th)

    [...] = findpeaks(data,'npeaks',np)

    [...] = findpeaks(data,'sortstr',str)

    命令findpeaks是用于查找向量中的波峰,即某一个元素比相邻两个元素的值都大。
    例如:
    a=[1 3 2 5 6 8 5 3];
    findpeaks(a),
    则返回 3 8
    [v,l]=findpeaks(a),
    则返回
    v=3 8
    l=2 6
    如果a为一个矩阵,则按照列的搜索顺序列出波峰的值和位置。

    更详细的可以参考help findpeaks

    缺点:

           只能找波峰值,无法找波谷值。


    转载注明出处:http://write.blog.csdn.net/postlist


    方法二:

    IndMin=find(diff(sign(diff(data)))>0)+1;
    IndMax=find(diff(sign(diff(data)))<0)+1;


    其中的,

    IndMin, data(IndMin)对应的是波谷点的数据
    IndMax,data(IndMax)对应的是波峰点的数据


     

    1. >> a=[1 3]  
    2.   
    3.  
    4.   
    5.                                   
    6.   
    7. >> IndMax=find(diff(sign(diff(a)))<0)+1  
    8.   
    9. IndMax  
    10.   
    11.           
    12.   
    13. >> a(IndMax)  
    14.   
    15. ans  
    16.   
    17.           
    18.   
    19. >> IndMin=find(diff(sign(diff(a)))>0)+1  
    20.   
    21. IndMin  
    22.   
    23.       
    24.   
    25. >> a(IndMin)  
    26.   
    27. ans  
    28.   
    29.       

    转载注明出处:http://write.blog.csdn.net/postlist
  • 相关阅读:
    最长回文子串 leetcode
    leetcode Plus one
    n的阶乘末尾有几个0?
    求两数的最大公约数和最小公倍数
    汉诺塔
    求n的阶乘
    svn book
    求斐波那契数列第n项
    判断一个数是否是素数
    <C Traps and Pitfalls>笔记
  • 原文地址:https://www.cnblogs.com/gisalameda/p/12840589.html
Copyright © 2020-2023  润新知