Find intervals in a vector

13 visualizaciones (últimos 30 días)
René Lampert
René Lampert el 10 de Feb. de 2021
Respondida: David Hill el 10 de Feb. de 2021
Lets suppose we have the vector A=[0 5 7 8 0 0 0 1 9 6 0 0 1 2]. The goal is to extract the indices of the different intervals inside the vector A and write it in seperate vectors. With intervals I mean the nonzero numbers. So at the end of the code I want the vectors B=(2 3 4) C=(8 9 10) D=(13 14), where the entries are the indices of the intervals (consecutive nonzero numbers) in A.
Is there a possibility to accomplish this task in a general way ?
Thanks

Respuesta aceptada

David Hill
David Hill el 10 de Feb. de 2021
a=find(A~=0);
b=[0,find(diff(a)>1),length(a)];
for k=2:length(b)
c{k-1}=a(b(k-1)+1):a(b(k));
end

Más respuestas (0)

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by