只根据一列对矩阵进行排序

  • 本文关键字:排序 一列 matlab sorting
  • 更新时间 :
  • 英文 :


我有这个矩阵A,

A= [10  -12  4  8;
1  3  11 -2;
1  -9  8  0;
1  1  9  3].

如果我在MatlabB = sortrows(A)中使用sortrows函数。我会得到这个。

B = [1    -9     8     0;
1     1     9     3;
1     3    11    -2;
10   -12     4     8].

我想要的答案是这样的。

B = [1   3     11     -2; 
1  -9  8      0;
1   1  9      3;
10   -12     4     8]

问题是,我想在这里对行进行排序,但只基于第1列。如果第1列中的值相同,则不要根据第2列对它们进行排序(在genreal中,此函数执行第2列(。

如果有人能帮我的话,我真的很感激。

谢谢。

使用函数sort仅对第一列进行排序,只保留索引,然后使用此索引对整个矩阵进行排序。

A= [10  -12  4  8;
1  3  11 -2;
1  -9  8  0;
1  1  9  3];
[~,ind] = sort(A(:,1))
B = A(ind,:)

或者简单地使用函数sortrows的第二个自变量来精确列排序向量:

B = sortrows(A,1) 

相关内容

  • 没有找到相关文章

最新更新