如何从两个文件中读出坐标值求任意坐标间的距离平均值

时间:2021-03-08 15:11:24
两个文件,存了两个坐标序列,比如
a.txt:
1,2
1,3
1,5
2,3

b.txt
2,5
3,3
2,8

求出a.txt中每个点和b.txt中每个点的距离,想用python,方便些

8 个解决方案

#1


你做了什么那些部分?哪些部分需要帮助?

#2


引用 1 楼  的回复:
你做了什么那些部分?哪些部分需要帮助?


刚开始学,现在想用for循环,发现只取到第一个文件的第一行就不继续取第一个文件了,怎么来遍历出全部的数值呢
还有求平均值时的次数怎么统计..

file_1 = open("1.txt")
file_2 = open("2.txt")
for f1 in file_std:
        a,b = map(float,f1.split(","))
        for fl in file_line:
                c,d = map(float,fl.split(","))

#3


楼上写错了
file_1 = open("1.txt")
file_2 = open("2.txt")
for f1 in file_1:
  a,b = map(float,f1.split(","))
  for f2 in file_2:
  c,d = map(float,fl.split(","))

#4


噢,我把file_2 = open("2.txt")放到for里面就可以全部遍历了,现在问题是如何求所有的距离和然后求均值了

#5


引用 4 楼  的回复:
噢,我把file_2 = open("2.txt")放到for里面就可以全部遍历了,现在问题是如何求所有的距离和然后求均值了


这样2.txt会被读很多次,更好的办法是先把1.txt,2.txt的数据读到两个list里面,在对两个list进行循环。

求平均值的次数可以用一个变量做计数器,每计算一个距离,计数器加一。(或者次数=两个文件中点的个数的乘积?)

#6


引用 5 楼  的回复:
引用 4 楼  的回复:

噢,我把file_2 = open("2.txt")放到for里面就可以全部遍历了,现在问题是如何求所有的距离和然后求均值了


这样2.txt会被读很多次,更好的办法是先把1.txt,2.txt的数据读到两个list里面,在对两个list进行循环。

求平均值的次数可以用一个变量做计数器,每计算一个距离,计数器加一。(或者次数=两个文件中点的个数的乘积……


恩,是这样,研究下

#7



print([((int(p1.rstrip().split(",")[0])-int(p2.rstrip().split(",")[0]))**2+(int(p1.rstrip().split(",")[1])-int(p2.rstrip().split(",")[1]))**2)**0.5 for p1 in open("a.txt") for p2 in open ("b.txt")])


我也是新手,刚学到list comprehension,发现好像可以用....哈哈

#8



print([((int(p1.rstrip().split(",")[0])-int(p2.rstrip().split(",")[0]))**2
   +(int(p1.rstrip().split(",")[1])-int(p2.rstrip().split(",")[1]))**2)
   **0.5
   for p1 in open("a.txt")
       for p2 in open ("b.txt")])

稍微调了下格式

#1


你做了什么那些部分?哪些部分需要帮助?

#2


引用 1 楼  的回复:
你做了什么那些部分?哪些部分需要帮助?


刚开始学,现在想用for循环,发现只取到第一个文件的第一行就不继续取第一个文件了,怎么来遍历出全部的数值呢
还有求平均值时的次数怎么统计..

file_1 = open("1.txt")
file_2 = open("2.txt")
for f1 in file_std:
        a,b = map(float,f1.split(","))
        for fl in file_line:
                c,d = map(float,fl.split(","))

#3


楼上写错了
file_1 = open("1.txt")
file_2 = open("2.txt")
for f1 in file_1:
  a,b = map(float,f1.split(","))
  for f2 in file_2:
  c,d = map(float,fl.split(","))

#4


噢,我把file_2 = open("2.txt")放到for里面就可以全部遍历了,现在问题是如何求所有的距离和然后求均值了

#5


引用 4 楼  的回复:
噢,我把file_2 = open("2.txt")放到for里面就可以全部遍历了,现在问题是如何求所有的距离和然后求均值了


这样2.txt会被读很多次,更好的办法是先把1.txt,2.txt的数据读到两个list里面,在对两个list进行循环。

求平均值的次数可以用一个变量做计数器,每计算一个距离,计数器加一。(或者次数=两个文件中点的个数的乘积?)

#6


引用 5 楼  的回复:
引用 4 楼  的回复:

噢,我把file_2 = open("2.txt")放到for里面就可以全部遍历了,现在问题是如何求所有的距离和然后求均值了


这样2.txt会被读很多次,更好的办法是先把1.txt,2.txt的数据读到两个list里面,在对两个list进行循环。

求平均值的次数可以用一个变量做计数器,每计算一个距离,计数器加一。(或者次数=两个文件中点的个数的乘积……


恩,是这样,研究下

#7



print([((int(p1.rstrip().split(",")[0])-int(p2.rstrip().split(",")[0]))**2+(int(p1.rstrip().split(",")[1])-int(p2.rstrip().split(",")[1]))**2)**0.5 for p1 in open("a.txt") for p2 in open ("b.txt")])


我也是新手,刚学到list comprehension,发现好像可以用....哈哈

#8



print([((int(p1.rstrip().split(",")[0])-int(p2.rstrip().split(",")[0]))**2
   +(int(p1.rstrip().split(",")[1])-int(p2.rstrip().split(",")[1]))**2)
   **0.5
   for p1 in open("a.txt")
       for p2 in open ("b.txt")])

稍微调了下格式