Arrange a matrix with repeated rows

조회 수: 2 (최근 30일)
Kyle
Kyle 2012년 12월 2일
Hi,experts
I have a raw matrix as:
a = [125 97
126 104
97 125
104 126];
I'm looking for an algorithm to manipulate this matrix with an output as:
a = [125 97
97 125
126 104
104 126];
just I want to put repeated row together. This is a small piece of a large matrix, but the structure is the same.
Thank you Kyle

채택된 답변

José-Luis
José-Luis 2012년 12월 2일
[idx idx] = sortrows(sort(a,2));
a = a(idx,:);

추가 답변 (1개)

Azzi Abdelmalek
Azzi Abdelmalek 2012년 12월 2일
편집: Azzi Abdelmalek 2012년 12월 2일
a = [125 97;126 104;97 125;5 4;104 126;97 125;4 5];
b=cell2mat(arrayfun(@(x) sort(a(x,:)),1:size(a,1),'un',0)')
[~,idx]=sortrows(b)
out=a(idx,:)
%If you don't need it to be sorted
b=cell2mat(arrayfun(@(x) sort(a(x,:)),1:size(a,1),'un',0)')
[c,d,e]=unique(b,'rows','stable')
[~,idx]=sort(e);
out=a(idx,:)

카테고리

Help CenterFile Exchange에서 Shifting and Sorting Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by