# Value dependant sort of matrix rows

1 view (last 30 days)
Nicosahedron on 3 Apr 2020
Commented: Nicosahedron on 3 Apr 2020
Hi,
I have a integer matrix which I know each row contain a certain value.
I would like to sort each row of that matrix in the way this value will always be in front / first position of the row.
The other values order doesn't matter.
For example with a constant value equal to 8 :
M8 = [7 8 5;...
8 7 3;...
4 8 3;...
5 8 4];
I would like in return of such a function
sorted_M8 = [8 7 5;...
8 7 3;...
8 4 3;...
8 5 4];
What is the quickest way to do this in Matlab ?
Thank you, best.
Nicolas

David Hill on 3 Apr 2020
sorted_M8=M8';
sorted_M8(ismember(M8',8))=M8(:,1);
sorted_M8=sorted_M8';
sorted_M8(:,1)=8;
Nicosahedron on 3 Apr 2020
Yeah good, thanks again. The only thing I try to avoid in general is to mix logical class objects with double class objects in computation.

R2019b

### Community Treasure Hunt

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

Start Hunting!

Translated by