【问题标题】:How to find the first peak in matlab?如何在matlab中找到第一个峰值?
【发布时间】:2018-07-23 19:46:52
【问题描述】:

我想在 matlab 的 Signal 中找到第一个峰值的值。

我使用了带通滤波器并获得了我上传的信号。

然后,我需要找到峰值的第一个轴“x”值。我如何找到它?我尝试使用 'findpeaks' 功能,但我并不完全了解。

【问题讨论】:

    标签: matlab


    【解决方案1】:

    我认为你可以使用max:

    [M,I] = max(A)
    

    其中A 是您的信号,M 是最大值,I 是它在数组中的位置。

    然后使用x(I),您可以检索其x 坐标(其中x 是x 轴上具有值的向量)。

    【讨论】:

    • 非常感谢您的回答。如果第一个值不是最大值,如何找到值的第一个 X 坐标?
    • 对不起,我不明白你的问题。你有多个最大值吗?
    • 我的意思是,例如,peak的第一个值为0.8,peak的第二个值为1.4,peak的第三个值为1.3。我需要自动找到第一个。 matlab中的函数应该用什么?
    • 也许你应该使用类似[M,I] = find(A>threshold) 的方法但是要找到一个始终有效的阈值可能会很棘手。
    【解决方案2】:
    l=length(A)
    for i=1:l-1
        if((A(i)-A(i+1))<0)
           continue
        else
           maxm=A(i);
           J=i;
           break
        end
    end
    

    例子

    A=[1 3 7 6 8 9 12 10 8]

    最大值 =

     7
    

    J =

     3
    

    【讨论】:

    • 请补充说明,不要只贴代码
    猜你喜欢
    • 2014-09-23
    • 1970-01-01
    • 2019-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-04
    • 1970-01-01
    相关资源
    最近更新 更多