# Value dependant sort of matrix rows

1 visualizzazione (ultimi 30 giorni)
Nicolas Douillet il 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
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Risposta accettata

David Hill il 3 Apr 2020
sorted_M8=M8';
sorted_M8(ismember(M8',8))=M8(:,1);
sorted_M8=sorted_M8';
sorted_M8(:,1)=8;
##### 3 CommentiMostra 1 commento meno recenteNascondi 1 commento meno recente
David Hill il 3 Apr 2020
Two lines.
sorted_M8=ismember(M8,8).*M8(:,1)+~ismember(M8,8).*M8;
sorted_M8(:,1)=8;
Nicolas Douillet il 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.

Accedi per commentare.

### Categorie

Scopri di più su Shifting and Sorting Matrices in Help Center e File Exchange

R2019b

### Community Treasure Hunt

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

Start Hunting!

Translated by