how can i find identical rows in a matrix

132 次查看(过去 30 天)
I have a 158x7 matrix. I want to find if there is at least one row which is identical.
  2 个评论
Geoff Hayes
Geoff Hayes 2015-3-21
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 2015-3-21
ok i changed the question. thanks for the advice

请先登录,再进行评论。

采纳的回答

Konstantinos Sofos
Konstantinos Sofos 2015-3-21
编辑:Konstantinos Sofos 2015-3-21
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,:)

更多回答(1 个)

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

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by