gpt4 book ai didi

matlab - 如何在 MATLAB 中根据信号峰值查找 X 轴值

转载 作者:行者123 更新时间:2023-11-30 09:50:40 26 4
gpt4 key购买 nike

我需要帮助来查找 x 轴上的值与找到的峰值的值。

有什么方法可以通过查看峰值直接绘制一条线,因为此命令为我提供了 y 轴上的峰值位置和值,但不幸的是我的 x 轴没有以良好的方式定义。

因为我也使用了 x_max_value = x(indexes) 但它没有给我正确的值。

我想找出第一个峰值和第三个峰值的 2 个峰值的 x 轴值的差异。这就是为什么我需要这个。

如何根据信号中发现的峰值查找 X 轴值。

我已经尝试过这些命令,但不幸的是没有奏效。

           x_at = x( firstpeak_1_loc)
x_at = x( lastpeak_1_loc)


% ind = find(f== lastpeak_2);
% x(ind)

这就是为什么我想在峰值正下方画一条线以清楚地获得 x 轴值。

     X = [2 3 4 5 10 7 8 9 5 6 ];
Plot(x)
[pks,locs] = findpeaks(x)

我是否可以在 x 轴上找到峰值的点画一条垂直线,因为我对 x 轴的值有疑问?

我想找出第一个峰值和第三个峰值的 2 个峰值的 x 轴值的差异。这就是为什么我需要这个。

最佳答案

您在“locs”中有峰的索引,如果您想对峰进行排序,请使用“findpeaks”中的排序选项:

clear;
y = [2 3 4 5 10 7 8 15 5 6 ];
N=length(y);
x=linspace(-6,4,N); % the data must contain x for each y

[y_atpeak,locs] = findpeaks(y,'SortStr','descend');
x_atpeak = x(locs);

plot(x,y,'r-',x_atpeak,y_atpeak,'go')

if length(y_atpeak)>=1
Yhighest=y_atpeak(1)
end
if length(y_atpeak)>=2
Ysecond=y_atpeak(2)
end

关于matlab - 如何在 MATLAB 中根据信号峰值查找 X 轴值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45564137/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com