微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何根据Julia中的每个长度对具有x1,y1,x2,y2因子的数组进行排序

如何解决如何根据Julia中的每个长度对具有x1,y1,x2,y2因子的数组进行排序

我想根据Julia中的每个长度对一个数组进行排序,该数组的因子为((x1,y1),(x2,y2))并表示一行的两个边缘。
由于Python和Julia之间的暗淡差异,我无法写。
在Python中,行的排序方式如下;

lines = [ ((l[0][0],l[0][1]),(l[0][2],l[0][3])) for l in lines ]
lines.sort(key = lambda l: -sqrt((l[0][0]-l[1][0])**2+(l[0][1]-l[1][1])**2))

如何在Julia中编写相同的过程?

解决方法

您似乎想要这个:

lines = [((a,b),(c,d)) for (a,b,c,d) in lines]

或这个

lines = [((a,d) in eachrow(lines)]

(我需要一个输入lines的例子和一个肯定的输出例子)

要对其进行排序,只需使用by kwarg:

sort!(lines,by=(((a,d)),) -> -sqrt((a-c)^2+(b-d)^2))

sort!(lines,by=x -> -sqrt((x[1][1]-x[2][1])^2+(x[2][1]-x[2][2])^2))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。