how can i find identical rows in a matrix

149 vues (au cours des 30 derniers jours)
AA
AA le 21 Mar 2015
Commenté : AA le 21 Mar 2015
I have a 158x7 matrix. I want to find if there is at least one row which is identical.
  2 commentaires
Geoff Hayes
Geoff Hayes le 21 Mar 2015
AA - please describe what you mean by similar. Do you meant that the two rows are identical or share the same values or share a pattern of numbers? Be clear about what the problem is you are trying to solve. Use the question body to include more than just a repeat of your question header.
AA
AA le 21 Mar 2015
ok i changed the question. thanks for the advice

Connectez-vous pour commenter.

Réponse acceptée

Konstantinos Sofos
Konstantinos Sofos le 21 Mar 2015
Modifié(e) : Konstantinos Sofos le 21 Mar 2015
Use unique() to find the distinct row values. If you end up with fewer rows, there are duplicates. It'll also give you indexes of one location of each of the distinct values. All the other row indexes are your duplicates.
x = [
1 1
2 2
3 3
4 4
2 2
3 3
3 3
];
[u,I,J] = unique(x, 'rows', 'first')
hasDuplicates = size(u,1) < size(x,1)
ixDupRows = setdiff(1:size(x,1), I)
dupRowValues = x(ixDupRows,:)

Plus de réponses (1)

Star Strider
Star Strider le 21 Mar 2015
Use the unique function with the 'rows' option.
  2 commentaires
AA
AA le 21 Mar 2015
would it be possible to give me an example?
AA
AA le 21 Mar 2015
B = unique(A,'rows');
As a check, if size(B) ~= size(A), then you have at least two identical rows.

Connectez-vous pour commenter.

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