2013-10-04 35 views
1

我的情況是:如何使用matlab中另一個向量中的值對矩陣進行排序?

我得到一個1000 * 2的矩陣和一個1000 * 1的向量。

而矩陣中的第i行映射到向量中的元素i。

而矢量中的元素都是整數。

現在我想排列矢量中的元素從低到高。

我想用新矢量的序列得到一個新的矩陣。映射關係等同於原始情況。

如何在Matlab中做到這一點?

謝謝!

回答

4

使用sortrows

首先CONCAT您的載體到您的矩陣:

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, :); 
+0

一個非常明確的解釋! – Jane

相關問題