Value dependant sort of matrix rows
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
David Hill
2020-4-3
sorted_M8=M8';
sorted_M8(ismember(M8',8))=M8(:,1);
sorted_M8=sorted_M8';
sorted_M8(:,1)=8;
3 个评论
David Hill
2020-4-3
Two lines.
sorted_M8=ismember(M8,8).*M8(:,1)+~ismember(M8,8).*M8;
sorted_M8(:,1)=8;
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!