Getting distance between specific numbers in array after using diff() function
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
M
el 12 de Jun. de 2022
Comentada: Image Analyst
el 14 de Jun. de 2022
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?
0 comentarios
Respuesta aceptada
Jan
el 12 de Jun. de 2022
Editada: Jan
el 12 de Jun. de 2022
x = [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, -1];
pos = find(x == 1);
neg = find(x == -1);
len = neg - pos - 1
If the trailing -1 is missing:
len = neg(1:numel(pos)) - pos - 1;
5 comentarios
Image Analyst
el 14 de Jun. de 2022
x = [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, -1];
pos = find(x == 1);
neg = find(x == -1);
len = neg - pos - 1
% Find out where each run of 0's start and end>
startingPositions = pos + 1
endingPositions = neg - 1
It seems to miss the zero starting and ending at index 1, and the run starting at 14 and ending at 16.
Maybe search for the zeros directly instead of for 1 and -1.
Más respuestas (1)
Image Analyst
el 12 de Jun. de 2022
Editada: Image Analyst
el 13 de Jun. de 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
0 comentarios
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!