peak finding of a graph

1 view (last 30 days)
ARPITA MONDAL
ARPITA MONDAL on 27 Jul 2020
Edited: ARPITA MONDAL on 27 Jul 2020
I am attaching the x and y data vector here. Whenever I am using findpeaks command for findind the peaks
x=V1_1_new
y=y1_1_new
findpeaks(y1_1_new,V1_1_new)
I am getting this error
Error using findpeaks
Expected X to be increasing valued.
Error in findpeaks>parse_inputs (line 215)
validateattributes(Xin,{'double'},{'real','finite','vector','increasing'},'findpeaks','X');
Error in findpeaks (line 134)
= parse_inputs(Yin,varargin{:});
How can I solve this error

Accepted Answer

KSSV
KSSV on 27 Jul 2020
load("matlab_peak.mat") ;
x=V1_1_new ;
y=y1_1_new ;
[pks,idx] = findpeaks(y) ;
plot(x,y)
hold on
plot(x(idx),y(idx),'*r')
  1 Comment
ARPITA MONDAL
ARPITA MONDAL on 27 Jul 2020
Thanks a lot. it has solved my problem.
Now, I am getting 7 peaks here. But If I wanted more peaks(11 peaks) ,Then what should I do?
x= V1_1_new is the voltage value in volt.
In x vs y plot if I want peak in every 30mv distance then what should I do

Sign in to comment.

More Answers (1)

Serhii Tetora
Serhii Tetora on 27 Jul 2020
x=V1_1_new;
y=y1_1_new;
[pks, locs] = findpeaks(y);
plot(x,y,x(locs),pks,'o')

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!