I would like a function to remove the duplicate values, but one that removes the duplicate value as well.

1 vue (au cours des 30 derniers jours)
I would like a function to remove the duplicate values, but one that removes the duplicate value as well.
That is, if I have a vector A = [ 1 2 3 4 5 6 6 6 7], I would like to get an output equal to B = [1 2 3 4 5 7].
Note that I want to get the same order as the original vector, I don't want it to organize.
That is, if I have a vector A = [7 8 9 6 5 2 2 2 1], in the end I would like to get a vector equal to B = [7 8 9 6 5 1].

Réponse acceptée

Matt J
Matt J le 23 Sep 2021
Modifié(e) : Matt J le 23 Sep 2021
USing the functions in
A = [7 8 9 6 5 2 2 2 1];
G=groupConsec(A);
[~,~,len]=groupLims(G,1);
L=len==1;
B=A(L(G))
B =
7 8 9 6 5 1
  2 commentaires
Clodoaldo de Souza Faria Júnior
But my numbers don't necessarily have to be consecutive, I want it to work in any case
Matt J
Matt J le 24 Sep 2021
Even easier:
A = [7 2 8 9 6 5 2 1 2];
G=findgroups(A);
L=accumarray(G(:),1)==1;
B=A(L(G))
B = 1×6
7 8 9 6 5 1

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

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

Produits


Version

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by