我需要帮助在x轴上找到与找到的峰值相关的值。
有没有什么方法可以通过查看峰值直接绘制一条线,因为这个命令给出了y轴上的峰值位置和值,但不幸的是我的x轴没有很好地定义。
因为我也使用了x_max_value = x(索引),但它没有给我正确的值。
我想找出第一个和第三个峰值的2个峰值的x轴值的差异。这就是我需要这个的原因。
如何根据信号中的峰值找到X轴值。
我尝试过这些命令,但遗憾的是没有用。
inoremap ii <esc>
这就是为什么我想直接在峰下画一条线来清楚地得到x轴值。
x_at = x( firstpeak_1_loc)
x_at = x( lastpeak_1_loc)
% ind = find(f== lastpeak_2);
% x(ind)
我是否有可能在我找到x轴峰值的点处绘制一条垂直线,因为我遇到x轴值问题?
我想找出第一个和第三个峰值的2个峰值的x轴值的差异。这就是我需要这个的原因。
答案 0 :(得分:1)
您有&#39; locs&#39;中的峰值索引,如果您想订购峰值,请在&#39; findpeaks&#39;中使用排序选项:
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