Effacer les filtres
Effacer les filtres

How do you remove duplicates without using unique?

3 vues (au cours des 30 derniers jours)
jeff417
jeff417 le 9 Avr 2016
Commenté : Star Strider le 9 Avr 2016
I have a problem where I have to remove duplicates from a column without using unique and without sorting the data. My current code is able to remove duplicates without unique, but the data has to be sorted for it to work. Is there a way to remove the duplicates without sorting and without using unique?
z = length(A);
for i = 1:(z-1)
if A(i+1) == A(i)
A(i) = A(i) - A(i+1);
end
end
A(A==0) = [ ];
end

Réponse acceptée

Star Strider
Star Strider le 9 Avr 2016
One approach:
A = [1;2;3;3;4;5;6;7;7;8;9];
Ac = zeros(size(A));
for k1 = 1:length(A)-1
Ac(k1) = sum(A(k1) == A(k1+1:end));
end
Out = A(Ac == 0)
Out =
1
2
3
4
5
6
7
8
9
  2 commentaires
jeff417
jeff417 le 9 Avr 2016
Works perfectly, thank you!
Star Strider
Star Strider le 9 Avr 2016
My pleasure!
It was fun to write that!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Shifting and Sorting 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