【问题标题】:MATLAB - Sort a matrix based off how a vector is sorted [duplicate]MATLAB - 根据向量的排序方式对矩阵进行排序[重复]
【发布时间】:2012-12-09 12:05:08
【问题描述】:

可能重复:
How can I sort a 2-D array in MATLAB with respect to one column?
Sort a matrix with another matrix

我有一个包含 429 个值的向量“A”和一个包含 429x200 个值的矩阵“B”。 A 和 B 中的行共享相同的索引。我的向量“A”包含值 1:1:429,但它们在整个向量中是随机排序的。我想对 A 进行重新排序,使其按从 1 到 429 的顺序进行索引,并且我还想按照与新排序的“A”相同的顺序对矩阵“B”中的行进行排序。

这可以在没有 for 循环的情况下快速简单地完成吗?

这里有一个例子来说明我的观点:

A =
    5
    3
    1
    2
    4


 B =
    3   7   0   4   6
    1   2   5   0   8
    4   0   2   0   0
    3   0   1   0   5
    2   2   3   4   4


sortedA = 

1
2
3
4
5

sortedB =

4   0   2   0   0
3   0   1   0   5
1   2   5   0   8
2   2   3   4   4
3   7   0   4   6

谢谢大家!

【问题讨论】:

    标签: matlab sorting vector matrix


    【解决方案1】:

    示例数据:

    A = [ 5, 3, 1, 2, 4 ]';
    
    B = [ 3, 7, 0, 4, 6; 1, 2, 5, 0, 8; 4, 0, 2, 0, 0; 3, 0, 1, 0, 5; 2, 2, 3, 4, 4 ]
    

    对矩阵进行排序:

    [sortedA,IX] = sort(A);
    
    sortedB = B(IX,:);
    
    sortedA =
     1
     2
     3
     4
     5
    
    sortedB =
     4     0     2     0     0
     3     0     1     0     5
     1     2     5     0     8
     2     2     3     4     4
     3     7     0     4     6
    

    【讨论】:

      猜你喜欢
      • 2020-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-29
      • 1970-01-01
      • 2013-02-10
      • 1970-01-01
      相关资源
      最近更新 更多