首页 > 解决方案 > 如何对包含向量的列表进行排序?

问题描述

我的清单包括二维的一些点。例如

List=[270 180 -180;-570 -510 -67.5]

我想按元素一排序

List=[-180 180 270;-67.5 -510 -570]

当我使用排序功能时,代码给了我这个列表

-180.0   180.0  270.0
-570.0  -510.0  -67.5

我怎样才能实现该列表。

请帮我。感谢您的热心帮助。

标签: julia

解决方案


indexin我建议不要像 user172056 建议的那样使用“反向搜索”每个排序元素,而是为第一行构建排序排列并使用它进行索引:

julia> l[:, sortperm(view(l, 1, :))]
2×3 Array{Float64,2}:
 -180.0   180.0   270.0
  -67.5  -510.0  -570.0

如果您还计划稍后按第二行排序,则可能还需要指定稳定的排序算法(sortperm默认情况下似乎使用不稳定的算法):

julia> l[:, sortperm(view(l, 1, :), alg = Base.Sort.DEFAULT_STABLE)]
2×3 Array{Float64,2}:
 -180.0   180.0   270.0
  -67.5  -510.0  -570.0

推荐阅读