MATLAB-根据向量的排序方式对矩阵进行排序
可能重复:MATLAB-根据向量的排序方式对矩阵进行排序,matlab,sorting,vector,matrix,Matlab,Sorting,Vector,Matrix,可能重复: 我有一个429个值的向量'a'和一个429x200个值的矩阵'B'。A和B中的行共享相同的索引。我的向量“A”包含值1:1:429,但它们在整个向量中是随机排序的。我想对A重新排序,使其索引顺序从1到429,我还想对矩阵“B”中的行按与新排序的“A”相同的顺序排序 如果没有for循环,这可以快速轻松地完成吗 下面是一个例子来说明我的观点: A = 5 3 1 2 4 B = 3 7 0 4 6 1
我有一个429个值的向量'a'和一个429x200个值的矩阵'B'。A和B中的行共享相同的索引。我的向量“A”包含值1:1:429,但它们在整个向量中是随机排序的。我想对A重新排序,使其索引顺序从1到429,我还想对矩阵“B”中的行按与新排序的“A”相同的顺序排序 如果没有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