How to find the peak value of a graph and how to plot them?

94 views (last 30 days)
I need to find the peak value of each force for the plotted graph and locate it in the graph.
I already use findpeaks but there is no answer and no error informed.
I'm not sure the flow and how to apply the findpeaks command.
Thank you in advance!
X=xlsread('Filtered JCF PHASE 1.xlsx',4,'Z5:AC55');
Y=xlsread('JCF PHASE 1_5UP.xlsx',4,'AN5:AP55');
Z=xlsread('JCF PHASE 1_5DW.xlsx',4,'AN5:AP55');
x1 = X(:,1); %the percentage
y1= X(:,2); %the force value 1
y2= Y(:,1); %the force value 2
y3= Z(:,1); %the force value 3
[pks,locs] = findpeaks (y1,x1);
findpeaks (y1, x1);
title('JCF HIP X');
xlhand = get(gca,'xlabel');
set(xlhand,'string','Percentage of stance phase (%)','fontsize',10)
ylhand = get(gca,'ylabel');
set(ylhand,'string',{'JCF (N)'},'fontsize',10);

Accepted Answer

Tommy on 5 Jun 2020
According to the findpeaks() documentation:
"A local peak is a data sample that is either larger than its two neighboring samples or is equal to Inf. Non-Inf signal endpoints are excluded."
"If there are no local maxima, then pks is empty."
None of your plots have local maxima. They do each have a maximum value, but these values are all endpoints.
How about just using max()?
[pk_1, loc_1] = max(y1);

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!