Matlab - сортировка матрицы - PullRequest
1 голос
/ 18 марта 2011

Я думаю, что могу лучше проиллюстрировать это на примере: Предположим, у меня есть A = [1, 4, 2, 3;0, -1, 2, -1]

Я хочу превратить его в [1, 2, 3, 4;0, 2, -1, -1]

т.е. сохранить столбцы нетронутыми, сортировать по записям в первой строке.Как мне это сделать?

1 Ответ

2 голосов
/ 18 марта 2011

Команда sortrows делает то, что вам нужно:

>> A = [ 1, 4, 2, 3; 0,-1, 2, -1];
>> sortrows(A.').'   

ans =

     1     2     3     4
     0     2    -1    -1

Вы также можете использовать второе возвращаемое значение из sort, чтобы получить перестановку столбцов, необходимую для превращения вашей матрицы втот, который вы хотите:

>> [~,ii] = sort(A(1,:))

ii =

     1     3     4     2

>> A(:,ii)

ans =

     1     2     3     4
     0     2    -1    -1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...