Find time of slope change

27 views (last 30 days)
Sarah Levovitz
Sarah Levovitz on 17 Jul 2018
Commented: Sarah Levovitz on 19 Jul 2018
I want to find the time where the slope of the graph starts to decrease. In this case, the graph is a measurement of the foot angle of someone walking. I would like to use MATLAB to detect when the person starts walking, which in this case seems to be at around 2 seconds. The problem is that there is a dip in the graph right at the beginning. Is there a way to detect an area of a graph with a slope close to 0, and then find where the first change that happens after that? I would like to also be able to use this code for other sets of data that do not look exactly the same.

Accepted Answer

jonas
jonas on 17 Jul 2018
Edited: Image Analyst on 17 Jul 2018
If you have the signal processing toolbox, you can try the function findchangepts. I believe the very similar ischange would be equally useful.
Here is an example. See attachment for results.
pts=findchangepts(y,'Statistic','linear','MinThreshold',20);
plot(x,y,'-b',...
x(pts),y(pts),'rx')
  5 Comments
Sarah Levovitz
Sarah Levovitz on 19 Jul 2018
thank you very very much, this worked perfectly!
Sarah Levovitz
Sarah Levovitz on 19 Jul 2018
@Image Analyst, thank you for the comment, I will note this for future.

Sign in to comment.

More Answers (0)

Categories

Find more on 2-D and 3-D Plots in Help Center and File Exchange

Products


Release

R2017b

Community Treasure Hunt

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

Start Hunting!