按照第一列排序矩阵 Julia

3

我在Julia中有一个类似这样的矩阵:

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

我该怎么做?

为了更清晰明确,你的例子中,数组已经按照第一列排序了,对吗? - logankilpatrick
复制我期望的结果时出现了错误,已经纠正。 - Carmen Aguirre
没关系!我很高兴你得到了答案! - logankilpatrick
1个回答

4
您发布的期望结果并未显示您想按第一列排序,因此不清楚您的意图。
如果您想通过其第一列对矩阵进行排序,则可以使用sortperm和索引:
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),但如果您想按照第二列等排序,则调用会更加困难...


那正是我在寻找的。我的问题中有错误,不够清楚,但已经被纠正了。 - Carmen Aguirre

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接