2013-06-25 85 views
0

我有一个包含多个列的数据集。另外,我有一个向量,它具有与数据集的一列相似的数据。我需要对整个数据集(行)进行排序,以使数据集中与该向量具有相似数据的列是相同的。我如何在Matlab中做到这一点?非常感谢。Matlab:根据矢量对数据集进行排序

+0

您可以添加一个小例子吗? – Nick

+0

@rize当你说_dataset_时,你的意思是来自统计的一组普通的值(例如矩阵)或[_dataset object_](http://www.mathworks.com/help/stats/datasetclass.html)工具箱? –

+0

@EitanT我的意思是来自统计工具箱的数据集对象。我知道这个词含糊不清,对此抱歉,未来会更加精确。感谢您的评论。 – rize

回答

1

你需要比较的数据集和向量的列生成索引变量。 intersect函数提供了一个方便的方法来执行此操作:

[intersection_set,iv1,id1]=intersect(vector1,dataset1(:,column_to_sort)); 
dataset1=dataset1(id1,:); 
+0

其实我正在寻找的是我可以保留向量中的行的顺序,并根据这个排序矩阵,即我使用相交'setOrder'参数的'stable'值。谢谢! – rize

+1

您可以通过在'intersect'的两个输入参数之后添加','stable''来实现 - 第一个输入的顺序将保持稳定。 –

+1

是的,这就是我所做的。谢谢! – rize

1

尝试这样:

% Preparation 
A = your_column_vector; 
B = your_data_matrix; 

C = [A; B]; 

% Calculation 
D = sortrows(C, 1) 

% Clean up 
your_sorted_matrix = D(:, 2:end) 
相关问题