# Removing repeated in order elements from array?

6 vues (au cours des 30 derniers jours)
Nicholas Kavouris le 30 Mar 2022
Commenté : Voss le 30 Mar 2022
I have an array like [ 1 1 1 2 2 3 3 3 1 1 1 2 2 4 4 4 5 5 6]
Is there a method which will produce array [ 1 2 3 1 2 4 5 6] and remove all repeating orderly values but not remove all duplicates?
have tried code below with no luck
for k=length(array):-1:1
if array(k)==array(k+1)
array(k)=[]
end
end
##### 0 commentairesAfficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

### Réponses (2)

Rik le 30 Mar 2022
No need for a loop (even if you should have replaced length by numel):
data=[ 1 1 1 2 2 3 3 3 1 1 1 2 2 4 4 4 5 5 6];
L=diff(data)==0; % note: this is 1 element shorter that data itself
data(L)=[]
data = 1×8
1 2 3 1 2 4 5 6
##### 0 commentairesAfficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

Voss le 30 Mar 2022
Your approach will work; you just have to start at the second-to-last element instead of the last:
array = [ 1 1 1 2 2 3 3 3 1 1 1 2 2 4 4 4 5 5 6];
for k=length(array)-1:-1:1
if array(k)==array(k+1)
array(k)=[];
end
end
array
array = 1×8
1 2 3 1 2 4 5 6
Here's another approach:
array = [ 1 1 1 2 2 3 3 3 1 1 1 2 2 4 4 4 5 5 6];
array(diff(array) == 0) = [];
array
array = 1×8
1 2 3 1 2 4 5 6
##### 3 commentairesAfficher 1 commentaire plus ancienMasquer 1 commentaire plus ancien
Torsten le 30 Mar 2022
Modifié(e) : Torsten le 30 Mar 2022
Why not ? I get
array = [2]
It's because diff(array) has one element less than array.
Voss le 30 Mar 2022
As @Torsten says, it should still work (both ways work):
array = [2 2 2 2 2 2 2];
for k=length(array)-1:-1:1
if array(k)==array(k+1)
array(k)=[];
end
end
array
array = 2
array = [2 2 2 2 2 2 2];
array(diff(array) == 0) = [];
array
array = 2

Connectez-vous pour commenter.

### Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

R2021b

### Community Treasure Hunt

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

Start Hunting!

Translated by