可能重复:
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
谢谢大家!
答案 0 :(得分:2)
示例数据:
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