How can I count the number of 1 after every element of the vector?
    6 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Nicolò Castellani
 el 17 de Feb. de 2020
  
I have this vector of 1 and 0:
X= [1 1 1 1 0 0 1 1 0 1 0 1 0 0 1 1]
I want to create a vector Y that counts for every element of X the number of 1 that there are after it (including the 1 of the element, if is 1)
So the vector Y should be:
Y=[4 3 2 1 0 0 2 1 0 1 0 1 0 0 2 1]
How can I do that?
thank you!
0 comentarios
Respuesta aceptada
  Stephen23
      
      
 el 17 de Feb. de 2020
        
      Editada: Stephen23
      
      
 el 17 de Feb. de 2020
  
      >> X = [1,1,1,1,0,0,1,1,0,1,0,1,0,0,1,1]
X =
   1   1   1   1   0   0   1   1   0   1   0   1   0   0   1   1
>> Z = cumsum([true,diff(X)>0]);
>> F = @(v){flip(cumsum(flip(v)))};
>> Y = cell2mat(accumarray(Z(:),X(:),[],F)).'
Y =
   4   3   2   1   0   0   2   1   0   1   0   1   0   0   2   1
0 comentarios
Más respuestas (0)
Ver también
Categorías
				Más información sobre NaNs 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!

