如何在一列中对MATLAB中的二维数组进行sorting?

我想根据特定的列来排列matrix。 有一个sort函数,但它独立地sort所有列。

例如,如果我的matrixdata是:

  1 3 5 7 -1 4 

然后所需的输出(按第一列sorting)将是:

 -1 4 1 3 5 7 

但是sort(data)的输出是:

 -1 3 1 4 5 7 

我怎样才能sorting这个matrix的第一列?

我认为sortrowsfunction是你正在寻找的。

 >> sortrows(data,1) ans = -1 4 1 3 5 7 

sortrows()的替代方法,可以应用于更广泛的场景。

  1. 通过以下方式保存要订购的行/列的sorting索引:

     [~,idx]=sort(data(:,1)); 
  2. 根据以前sorting的索引对所有行/列进行重新sorting

     data=data(idx,:)