Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 基于另一向量的matlab排序矩阵_Arrays_Matlab_Matrix_Vector - Fatal编程技术网

Arrays 基于另一向量的matlab排序矩阵

Arrays 基于另一向量的matlab排序矩阵,arrays,matlab,matrix,vector,Arrays,Matlab,Matrix,Vector,我有一个2D矩阵,希望根据两个其他向量对行和列进行排序,即一个用于对行进行排序,另一个用于在MATLAB中对列进行排序 示例:A(矩阵到订单) 行向量(矩阵A的行排序顺序) 和列向量 1 5 4 2 3 修改的 0 4 3 1 2 3 8 0 1 2 1 7 9 1 8 2 2 6 3 4 那么: ModifiedA=A(RowVector,ColumnVector); 注意:Matab的索引从1开始,而不是从0开始,相应地调

我有一个2D矩阵,希望根据两个其他向量对行和列进行排序,即一个用于对行进行排序,另一个用于在MATLAB中对列进行排序

示例:A(矩阵到订单)

行向量(矩阵A的行排序顺序)

和列向量

1 5 4 2 3
修改的

0   4   3   1   2
3   8   0   1   2
1   7   9   1   8
2   2   6   3   4
那么:

ModifiedA=A(RowVector,ColumnVector);

注意:Matab的索引从
1
开始,而不是从
0
开始,相应地调整索引向量。

在MATLAB中,您可以使用
排序的第二个输出
来获得MATLAB正在查找的基于1的索引(在本例中,您可以只添加1,但即使行和列向量不连续,使用
sort
也有效)

然后可以对矩阵应用索引操作:

modifiedA = A(rowIdx, colIdx);

实际上,阅读代码比问题描述更有意义……很遗憾,需要回答才能澄清OP的问题-+1。在Matlab中,索引从1开始,索引向量将返回当前格式的错误。不需要对这些向量调用排序。OP已经提供了每个维度的顺序eds需要在中排序,因此排序是多余的。
ModifiedA=A(RowVector,ColumnVector);
[~,rowIdx] = sort(rowVector);
[~,colIdx] = sort(colVector);
modifiedA = A(rowIdx, colIdx);