我有一个2D矩阵,想要根据另外两个向量对行和列进行排序,即一个用于排序行,另一个用于在MATLAB中对列进行排序
示例:A(要订购的矩阵)
0 1 2 3 4
1 1 8 9 7
2 3 4 6 2
3 1 2 0 8
行向量(排序矩阵A行的顺序)
1
4
2
3
列向量
1 5 4 2 3
修改A
0 4 3 1 2
3 8 0 1 2
1 7 9 1 8
2 2 6 3 4
答案 0 :(得分:2)
怎么样:
ModifiedA=A(RowVector,ColumnVector);
注意:Matab的索引从1
而不是0
开始,相应地调整您的索引向量。
答案 1 :(得分:1)
在MATLAB中,您可以使用sort
的第二个输出来获取MATLAB正在寻找的基于1的索引(在这种情况下,您可以刚刚添加1,但使用sort
甚至可以工作如果行和列向量不连续)。
[~,rowIdx] = sort(rowVector);
[~,colIdx] = sort(colVector);
然后您可以将索引操作应用于矩阵:
modifiedA = A(rowIdx, colIdx);