findpeaks() neglecting the high amplitude peaks.Does not work as exptected

3 views (last 30 days)
I am attaching herewith the data i am working with. Findpeaks() is not detecting the highest amplitude peaks. Attached is the data I am working with. Following is the code:
file = 'forRef_2.xls';
col = xlsread(file,'J:J');
peaks=findpeaks(col);
[pks,locs] = findpeaks(col);
%both on same plot
figure
plot(col,'r')
hold on
plot(locs,pks,'pg', 'MarkerFaceColor','b')
legend('original','peaks')
  4 Comments

Sign in to comment.

Accepted Answer

Andrew Newell
Andrew Newell on 18 Apr 2017
When I try this code, I get 7 plots, and figure 7 looks like your figure except that all the peaks are correctly identified:
file = 'forRef_2.xls';
col = xlsread(file,'J:J');
for ii=1:size(col,2)
peaks=findpeaks(col(:,ii));
[pks,locs] = findpeaks(col(:,ii));
%both on same plot
figure
plot(col(:,ii),'r')
hold on
plot(locs,pks,'pg', 'MarkerFaceColor','b')
legend('original','peaks')
end
  11 Comments
preeti visweswaran
preeti visweswaran on 19 Apr 2017
I would be grateful to you if you could advise me another problem posted in https://www.mathworks.com/matlabcentral/answers/336003-peak-detection-without-using-findpeaks

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!