1

我的情况是:

我得到一个 1000*2 矩阵和一个 1000*1 向量。

并且矩阵中的第 i 行映射到向量中的元素 i。

并且向量中的元素都是整数。

现在我想将向量中的元素从低到高排序。

我想用新向量的序列得到一个新矩阵。并且映射关系等于原来的情况。

如何在 Matlab 中做到这一点?

谢谢!

4

1 回答 1

4

使用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, :);
于 2013-10-04T08:06:50.873 回答