如何在 MATLAB 中找到信号峰值的 X 轴值
How to find X axis value against peak value of signal in MATLAB
我需要帮助找到 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
我需要帮助找到 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