Arrange a matrix with repeated rows

2 次查看(过去 30 天)
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