Determine begin and Endpoint of Interval with Threshold.
1 回表示 (過去 30 日間)
古いコメントを表示
I want to determine at which sample a curve in the movement of a player was started and at which sample the curve was stopped, to then calculate the magnitude of the total curve.
I have an input that shows the Index number of the midpoint of the curves(Mid_Angle(2x11 Matrix)). Around all these midpoints I want to know at which time the player started deviating his movement. Therefore, I have an Ang_Sample(1x1126), which displays the angle between the direction vectors of consecutieve samples.
I want to determine at which sample before the Midpoint of the angle the Ang_Sample went above 0.5 (and didn't go below 0.5 until MidPoint) to determine this as Beginpoint. And at which sample after the Midpoint the Ang_Sample went below 0.5 to determine this as Endpoint.
Right now I have a time interval (0.5s) which before and after I determine the first and last time to reach Ang_Sample above 0.5 . This method works well in most cases, but if the player makes an uncontrolled Angle or startes two angles shortly after each other I get problems.
d = 50 --> %number of samples interval before and after.
e = 0.5 --> %threshold for curve
for i= 1:length(Mid_Angle)
Ang_Abs = abs(Ang_Sample([Mid_Angle(1,i)-d]:[Mid_Angle(1,i)+d]));
Start_Ang(i) = find(Ang_Abs>e,1,'first')+(Mid_Angle(1,i)-d);
End_Ang(i) = find(Ang_Abs>e,1,'last')+(Mid_Angle(1,i)-d);
Total_Ang(i) = sum(Ang_Sample([Start_Ang(i)]:[End_Ang(i)]));
end
2 件のコメント
dpb
2014 年 3 月 3 日
Often the way to attack such is to convert the values to binary where
A(A>th)=1;
A(A<=th)=-1;
Then diff() and find the +/-2 locations
Image Analyst
2014 年 3 月 3 日
Attach data that illustrates the problem - something we can use to test code on. Also put in a plot or graph or something so we can visualize what's going on.
回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Statistics and Machine Learning Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!