Counting zeros in array
Mostrar comentarios más antiguos
Hi everyone,
I have an array such as;
input = [1 -2 -1 -1 -1 0 0 -1 0 0 0 3 0 0 4 0 0 0 0 0]
By counting zeros and determining the value after zero, I want to create a new dimentional array such as;
output = [0 1; 0 -2; 0 -1; 0 -1; 0 -1; 2 -1; 3 3; 2 4; 4 0]
Each row of "output" array determines that [number of zeros before non zero element non zero element].
For example, [2 4] represents that there are 2 zeros before "4".
How can I create the "output" array based on this rule?
1 comentario
Image Analyst
el 6 de Mayo de 2019
Just try a for loop.
Respuesta aceptada
Más respuestas (1)
Simpler:
>> V = [1,-2,-1,-1,-1,0,0,-1,0,0,0,3,0,0,4,0,0,0,0,0];
>> X = find([V(1:end-1),1]);
>> Z = [diff([1,X+1])-1;V(X)].'
Z =
0 1
0 -2
0 -1
0 -1
0 -1
2 -1
3 3
2 4
4 0
Categorías
Más información sobre Matrix Indexing en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!