How to find a number but if it repeats immediately after, take the first value.

2 visualizaciones (últimos 30 días)
I want to be able to find the index of the first 5 in but ignore the other 5's if they are immediately right after.
In the example below, there would be three 5's I would want to keep.
A = [0 5 0 5 5 0 0 0 5 5 5 5 5 0 0 0]
b = A == 5;
c = find(b == 1);
A = [0 5(keep) 0 5(keep) 5 0 0 0 5(keep) 5 5 5 5 0 0 0]

Respuesta aceptada

Stephen23
Stephen23 el 7 de Abr. de 2021
A = [0 5 0 5 5 0 0 0 5 5 5 5 5 0 0 0];
X = diff([false,A==5])>0
X = 1×16 logical array
0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0

Más respuestas (1)

Sulaymon Eshkabilov
Sulaymon Eshkabilov el 7 de Abr. de 2021
Here is an easy solution to your exercise:
A = [0 5 0 5 5 0 0 0 5 5 5 5 5 0 0 0];
IND = find(A==5);
C = A(IND(1:5));
Good luck.

Categorías

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