Сортировка матрицы по первому столбцу Юлия - PullRequest
2 голосов
/ 01 октября 2019

У меня есть такая матрица в Юлии

5×2 Array{Float64,2}:
 5.52777     7.51186e15
 0.00444418  0.0311171 
 3.26441     9.72657   
 3.38447     1.7144e16 
 0.459852    6.90901   

Я бы хотел заказать ее по первому столбцу и получить что-то вроде этого

 0.00444418  0.0311171 
 0.459852    6.90901   
 3.26441     9.72657   
 3.38447     1.7144e16 
 5.52777     7.51186e15

Любая помощь?

1 Ответ

2 голосов
/ 01 октября 2019

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

Если вы хотите отсортировать матрицу по первому столбцу, вы можетеиспользуйте sortperm и indexing:

julia> m[sortperm(m[:,1]),:]
5×2 Array{Float64,2}:
 0.00444418  0.0311171 
 0.459852    6.90901   
 3.26441     9.72657   
 3.38447     1.7144e16 
 5.52777     7.51186e15

sortperm(m[:,1]) возвращает отсортированные индексы первого столбца, которые вы затем используете для индексации матрицы.

Возможно, более быстрой альтернативой будет использование sortslices(m,dims=1), но это становится немного сложнее для вызова, если, например, вы хотите отсортировать по второму столбцу ...

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