Dividing cyclical data in array
4 views (last 30 days)
Show older comments
Marc Elmeua
on 27 Feb 2020
Commented: Marc Elmeua
on 27 Feb 2020
Hello,
I have acceleration data of diferent segments of a moving horse. I would like to split it so that I have a different array for each of the strides of the horse, so that I can later time normalize each stride and average them to obtain one averaged stride. I can identify each stride by locating the peaks of acceleration of the horse's foot.
Is there an elegant way to split the array in such way?
Thank you so much.
0 Comments
Accepted Answer
Mohammad Sami
on 27 Feb 2020
Assuming you can get the locations of the peak, you can create an id variable.
% acc = ... m x 1 array
%locationidxofpeak = somefuntion....
strideid = zeros(length(acc),1);
strideid(locationidxofpeak) = 1;
strideid = cumsum(strideid);
% now stride id would be like [0 0 0 0 0 1 1 1 1 1 2 2 2 2 2 ....]
for i = min(strideid):max(strideid)
strideacc = acc(strideid == i);
% your code.
end
More Answers (0)
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!