MATLAB - 根据向量的排序方式对矩阵进行排序

标签 matlab sorting vector matrix

<分区>

Possible Duplicate:
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

谢谢大家!

最佳答案

示例数据:

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

关于MATLAB - 根据向量的排序方式对矩阵进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13998098/

相关文章:

Javascript 按 "groups"排序数组并保持顺序

c++ - 检查模板参数是否为 std::vector<T>::iterator

从数组转换为 vector 时的java泛型问题

MATLAB 在不变流形上求解 ODE

matlab - 如何仅删除由特定 matlab 脚本创建的变量

matlab - 在空子图中移动图例位置

c++ - 在 C++ 中对共享指针的 vector 进行排序

matlab - MATLAB fnplt 中的向量输入有什么作用?

PHP SQL - 按国家排序

python - 使用python映射到整数后如何防止前导零