Find time of slope change

27 次查看(过去 30 天)
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.

采纳的回答

jonas
jonas 2018-7-17
编辑:Image Analyst 2018-7-17
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 个评论
Sarah Levovitz
Sarah Levovitz 2018-7-19
thank you very very much, this worked perfectly!
Sarah Levovitz
Sarah Levovitz 2018-7-19
@Image Analyst, thank you for the comment, I will note this for future.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 2-D and 3-D Plots 的更多信息

产品


版本

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by