How to easily detect all the equal rows of an array with saving the indices of the elements?
Show older comments
I have a matrix as shown here
A=[ -1 0 0;
-1 0 0;
-1 0 0;
-1 0 0;
1 0 0;
1 0 0;
] I want to detect all the equal rows in the matrix and build another matrix with the indices of the equal rows. For exemple here row1=rows2=row3=row4 and row5=row6... I want to have a matrix like this [1 2;1 3;1 4; 5 6]. I find a solution but it uses a lot of for loops so it's not fast enough when I apply it to a large matrix. Is there any easiest solution for this. Thank you.
Answers (1)
Ahmet Cecen
on 19 May 2016
This does all of that:
[C,ia,ic] = unique(A,'rows')
2 Comments
Sleh Eddine Brika
on 19 May 2016
Ahmet Cecen
on 20 May 2016
histogram(ic,length(ia));
Will give you those counts.
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!