我需要帮助找到峰值对应的X轴值。
有没有一种方法可以直接通过查看峰值来绘制一条线,因为这个命令给了我峰值的位置和Y轴上的值,但不幸的是我的X轴定义得不好。
因为我也使用了 x_max_value = x(indexes),但它没有给我正确的值。
我想找出第一个峰和第三个峰的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轴的值有问题?
我想找出第一个峰和第三个峰的X轴值之间的差异。这就是为什么我需要这个。
回答:
您在’locs’中拥有峰值的索引,如果您想对峰值进行排序,请在’findpeaks’中使用排序选项:
clear;y = [2 3 4 5 10 7 8 15 5 6 ];N=length(y);x=linspace(-6,4,N); % 数据必须包含每个y的x[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)endif length(y_atpeak)>=2 Ysecond=y_atpeak(2)end