Getting distance between specific numbers in array after using diff() function
Show older comments
I would like to find a distance between specific arrays (this distance represents time), I got it as an output of using diff function thanks to it I know when foot movement started. For example let's say I have array like this:
x = [ 0 1 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 1 0 0 0 -1]
And I would like to automate the code and find the distance - how many zeros are between 1 and -1 (i don't want from -1 and 1), So for example from this code I'd know that I have 1) 10 zeros space between first 1 and -1 and index range between first and last zero, and for the 2) 3 zeros space and also indexes. Is that possible to do?
Accepted Answer
More Answers (1)
Image Analyst
on 12 Jun 2022
Edited: Image Analyst
on 13 Jun 2022
If you have the Image Processing Toolbox you can use regionprops to find the location of the "0" regions:
x = [ 0 1 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 1 0 0 0 -1];
props = regionprops(x == 0, 'Area', 'PixelIdxList');
allZeroLengths = [props.Area]
for k = 1 : numel(props)
startingIndexes(k) = props(k).PixelIdxList(1);
endingIndexes(k) = props(k).PixelIdxList(end);
end
startingIndexes % Show in command window
endingIndexes
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!