Мне нужно заказать список, который зависит от другого списка. как изменить оба списка? - PullRequest
4 голосов
/ 25 марта 2010

У меня есть программа Matlab, которая генерирует список x = 6.1692 8.1863 5.8092 8.2754 6.0891 программа также выводит другой список aspl = 680 637 669 599 693.

Два списка имеют одинаковую длину, и первый элемент в списке x связан с первым элементом в списке aspl. Мне нужно построить график двух списков, но хочу, чтобы список aspl был в порядке от наименьшего к наибольшему. Как бы я поступил так? Если мне нужно переместить первый элемент в aspl на позицию 4 в списке, то первый элемент списка x также необходимо переместить на позицию 4 в списке x. Числа выше не важны, они являются просто примерами, фактическая программа генерирует сотни чисел.

например 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

1 Ответ

8 голосов
/ 25 марта 2010

Используйте второй выход сортировки:

%# sort aspl, get new order of aspl
[sortedAspl, sortOrder] = sort(aspl);
%# reorder x the same way as aspl
sortedX = x(sortOrder);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...