2010-03-25 65 views
4

我有生成的列表的Matlab程序X = 6.1692 8.1863 5.8092 8.2754 6.0891程序还输出另一个列表ASPL = 680 637 669 599 693我需要订购一个依赖于另一个列表的列表。如何更改这两个列表?

的两个列表是对等的长度,并且在列表中x中的第一个元素与列表aspl中的第一个元素有关。我需要绘制两个列表,但希望列表aspl按从小到大的顺序排列。我会如何去做这件事?如果我需要将aspl中的第一个元素移动到列表中的位置4,那么列表x的第一个元素也需要移动到列表x中的位置4。上面的数字并不重要,它们只是一个例子,实际的程序会产生数字的咆哮。

例如X = 6.1692 8.1863 5.8092 8.2754最初

 aspl = 680 637 669 599 693 

改变ASPL到升序在此之后为x的外观。

X = 5.8092 8.1863 5.8092 6.1692 8.2754

ASPL = 599 637 669 680 693

回答

8

使用排序的第二输出:

%# sort aspl, get new order of aspl 
[sortedAspl, sortOrder] = sort(aspl); 
%# reorder x the same way as aspl 
sortedX = x(sortOrder); 
相关问题