Сортировка массива ячеек по первому элементу каждой ячейки - PullRequest
3 голосов
/ 24 ноября 2010

Моя проблема в том, как отсортировать массив ячеек, учитывая только первый элемент каждой ячейки в этом векторе:

array_A={[3 1 5] [1 6 2] [2 4 1]}

Я хочу отсортировать array_A по первому элементу каждой ячейки следующим образом:

array_A={[*1* 6 2] [*2* 4 1] [*3* 1 5]}

Есть ли у вас какие-либо идеи о том, как я могу решить эту проблему таким образом, чтобы это можно было сделать рекурсивно для тысяч ячеек?

1 Ответ

4 голосов
/ 24 ноября 2010

Самым простым может быть просто сгенерировать array_A для создания числового массива и сортировки по нему.Если векторы длинные или имеют разную длину, вы можете сначала извлечь первый элемент каждого элемента массива ячеек и отсортировать его.

Другими словами:

%# extract the first number from each element of array_A
firstElement = cellfun(@(x)x(1),array_A);
%# sort (the ~ discards the first output argument of sort)
[~,sortIdx] = sort(firstElement);
%# sort array_A using the proper sort order
array_A_sorted = array_A(sortIdx);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...