How to count the number of times that values changes?

32 visualizaciones (últimos 30 días)
Mia Dier
Mia Dier el 9 de En. de 2021
Comentada: Mario Malic el 9 de En. de 2021
A=[1 1 1 2 1 3 3 1 1]' I want to get:
B=[NaN 0 0 1 2 3 3 4 4]'
The second and third values of B are 0 because A doesn't change value. Fourth value is 1 because A changes value. Fifth value is 2 because A changes value again. And so on...

Respuesta aceptada

Stephen23
Stephen23 el 9 de En. de 2021
Editada: Stephen23 el 9 de En. de 2021
A = [1;1;1;2;1;3;3;1;1]
A = 9×1
1 1 1 2 1 3 3 1 1
B = [NaN;cumsum(diff(A)~=0)]
B = 9×1
NaN 0 0 1 2 3 3 4 4

Más respuestas (1)

Mario Malic
Mario Malic el 9 de En. de 2021
Editada: Mario Malic el 9 de En. de 2021
Hello,
This should do the trick.
B = [NaN; cumsum(diff(A) ~= 0)]';
  2 comentarios
Stephen23
Stephen23 el 9 de En. de 2021
A = [1 1 1 2 1 3 3 1 1]';
B = [NaN, cumsum(diff(A) ~= 0)]'
Error using horzcat
Dimensions of arrays being concatenated are not consistent.
Mario Malic
Mario Malic el 9 de En. de 2021
Thanks Stephen, fixed it now.

Iniciar sesión para comentar.

Categorías

Más información sobre Matrices and Arrays 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