要根據除第一列之外的所有列對矩陣進行排序,我使用了以下代碼。我不希望 sortrows 考慮第一列,因為這是為了跟蹤行號。
B = [1 1 0 0 0 0 0 0 0 1
2 0 1 0 0 0 0 1 0 0
3 0 0 1 0 1 0 0 1 0
4 0 1 0 0 0 1 1 0 0
5 0 0 1 0 0 0 0 1 0
6 0 0 0 0 0 1 1 0 0
7 1 0 0 1 0 0 0 0 0
8 0 0 1 0 1 0 0 0 0];
D = -sortrows(-B,[2:size(B,2)])
如果您想根據除第一行之外的所有行對矩陣進行排序,那么在按降序排序時每列的第一個元素將被忽略怎么辦?有沒有類似 sortrows 的功能?
為了澄清,所需的輸出是
1 0 0 0 0 0 0 1 0 1
2 1 1 0 0 0 0 0 0 0
3 0 0 1 1 1 0 0 0 0
4 1 1 0 0 0 1 0 0 0
5 0 0 1 1 0 0 0 0 0
6 1 0 0 0 0 1 0 0 0
7 0 0 0 0 0 0 1 1 0
8 0 0 1 0 1 0 0 0 0
uj5u.com熱心網友回復:
你可以通過
- 轉置輸入和輸出
- 將第 1 列分開
- 您可以使用負排序索引來避免您所做的使輸入和輸出為負的操作
A = [B(:,1) sortrows( B(:,2:end).', -(2:size(B,1)) ).'];
>> A
A =
1 0 0 0 0 0 0 1 0 1
2 1 1 0 0 0 0 0 0 0
3 0 0 1 1 1 0 0 0 0
4 1 1 0 0 0 1 0 0 0
5 0 0 1 1 0 0 0 0 0
6 1 0 0 0 0 1 0 0 0
7 0 0 0 0 0 0 1 1 0
8 0 0 1 0 1 0 0 0 0
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/354186.html
下一篇:如何在plot3中使用漸進著色?
