【问题标题】:How to sort a matrix by using values in another vector in matlab?如何通过使用matlab中另一个向量中的值对矩阵进行排序?
【发布时间】:2013-10-04 08:00:51
【问题描述】:

我的情况是:

我得到一个 1000*2 的矩阵和一个 1000*1 的向量。

并且矩阵中的第i行映射到向量中的元素i。

并且向量中的元素都是整数。

现在我想将向量中的元素从低到高排序。

我想用新向量的序列得到一个新矩阵。并且映射关系和原来的情况是一样的。

如何在 Matlab 中做到这一点?

谢谢!

【问题讨论】:

    标签: matlab sorting vector matrix


    【解决方案1】:

    使用sortrows:

    首先将你的向量连接到你的矩阵:

    M2 = [V, M];
    

    然后对行进行排序:

    M2 = sortrows(M2); %// You should just do sortrows([V, M]) here, I just split it for the explanation
    

    然后拆分向量和矩阵:

    V_sorted = M2(:,1);
    M_sorted = M2(:, 2:end);
    

    或者你也可以使用sort的第二个输出:

    [V_sorted, newRowOrder] = sort(V);
    M_sorted = M(newRowOrder, :);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-10
      • 1970-01-01
      • 1970-01-01
      • 2018-04-09
      • 1970-01-01
      • 1970-01-01
      • 2019-11-06
      • 1970-01-01
      相关资源
      最近更新 更多