我的情况是:
我得到一个 1000*2 矩阵和一个 1000*1 向量。
并且矩阵中的第 i 行映射到向量中的元素 i。
并且向量中的元素都是整数。
现在我想将向量中的元素从低到高排序。
我想用新向量的序列得到一个新矩阵。并且映射关系等于原来的情况。
如何在 Matlab 中做到这一点?
谢谢!
使用sortrows
:
首先将您的向量连接到您的矩阵:
M2 = [V, M];
然后对行进行排序:
M2 = sortrows(M2); %// You should just do sortrows([V, M]) here, I just split it for the explanation
然后拆分向量和矩阵:
V_sorted = M2(:,1);
M_sorted = M2(:, 2:end);
或者,您可以使用来自的第二个输出sort
:
[V_sorted, newRowOrder] = sort(V);
M_sorted = M(newRowOrder, :);