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

2 vues (au cours des 30 derniers jours)
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]

Réponse acceptée

Stephen23
Stephen23 le 7 Avr 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

Plus de réponses (1)

Sulaymon Eshkabilov
Sulaymon Eshkabilov le 7 Avr 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.

Catégories

En savoir plus sur Resizing and Reshaping Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by