我有一个像这样的3列数组:
A = [6 -1 0;
6 0 3;
1 4 3;
1 2 5];
我需要第一列按降序排列,第二列按升序排列,第三列更改另外两列(即它们没有排序),如下所示:
B = [6 -1 0;
6 0 3;
1 2 5;
1 4 3];
答案 0 :(得分:0)
如果要保持第三列不变,
B = A;
B(:,1) = sort(B(:,1),'descend');
B(:,2) = sort(B(:,2),'ascend');
如果您希望第三列随第二列更改,那么
[B(:,2),ind] = sort(B(:,2),'ascend');
B(:,3) = B(ind,3);
B =
6 -1 0
6 0 3
1 2 5
1 4 3
答案 1 :(得分:0)
如果您希望将行保持为记录,并根据第1列和第2列对它们进行排序,请使用sortrows()
,使用负列索引来指示要对其值进行排序的列按降序排列。
B = sortrows(A, [-1 2])