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

0 votos

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

Etiquetas

Preguntada:

el 10 de Feb. de 2021

Respondida:

el 10 de Feb. de 2021

Community Treasure Hunt

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

Start Hunting!

Translated by