How to remove rows having repeating elements from a matrix?
Afficher commentaires plus anciens
If I have a matrix A=[ 1 2 1 4; 1 2 3 4; 3 2 1 4; 3 3 2 1] then I want a matrix as B=[ 1 2 3 4; 3 2 1 4] so that both the 1st and 4th row will be deleted as they have repeated elements. pls help me to find out the code.
Réponse acceptée
Plus de réponses (1)
Baltam
le 25 Avr 2016
The below method is not elegant but it works.
A=[ 1 2 1 4; 1 2 3 4; 3 2 1 4; 3 3 2 1];
index = zeros(1,size(A,1));
for i = 1:size(A,1)
if numel(unique(A(i,:))) == numel(A(i,:))
index(i)=1;
end
end
index = logical(index);
B = A(index,:);
Kind regards,
Baltam
2 commentaires
Susmita
le 27 Avr 2016
David Wagener
le 1 Déc 2019
The second version shown here while not as elegant works better if you have a large matrix and are using parallel processing. I'm not an expert by any means but the second version did not overload my machine like the first one did.
Catégories
En savoir plus sur Operators and Elementary Operations dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!