私は点のリストを使って作業しています[(1,2),(3,4),(5,6),(7,8)]
。私は各点からリストの他の点までのユークリッド距離を求めたい。Python:forループを使ってfloatのネストされたリストを作成する
元のリストの各ポイントを表すために新しいリストを作成する必要があります。新しいリストでは、そのポイントのみに関連する距離を追加します。
これまでのところ、私が持っている:mat_ary1
で
for i in mat_ary1:
points_dist_i = []
for j in i:
row = []
x2 = [u[0] for u in i]
y2 = [u[1] for u in i]
# Calculate the distance from point j to all others
for a in x2:
dist_x_1 = pow((a - j[0]),2)
for b in y2:
dist_y_1 = pow((b - j[1]),2)
dist_xy_1 = float('{0:.2f}'.format((math.sqrt(dist_x_1 + dist_y_1))))
for item in j:
if item not in row:
row.append(dist_xy_1)
else:
continue
points_dist_i.append(row)
各i
は点のリストを表します。私が使用しているループでは、同じ計算を繰り返すように見えます。
私の入力が行を複製しているようだ:
[[6.32, 6.32], [6.32, 6.32], [0.0, 0.0], [0.0, 0.0]]
[[11.4, 11.4], [11.4, 11.4], [0.0, 0.0], [0.0, 0.0]]
[[16.49, 16.49], [16.49, 16.49], [0.0, 0.0], [0.0, 0.0]]
[[14.32, 14.32], [14.32, 14.32], [0.0, 0.0], [0.0, 0.0]]
[[13.0, 13.0], [13.0, 13.0], [0.0, 0.0], [0.0, 0.0]]
[[11.66, 11.66], [11.66, 11.66], [0.0, 0.0], [0.0, 0.0]]
私はあなたを理解するようにしましょう。 「(1,2)」と「(3,4)」という2つのポイントがあるとします。これら2つの点については、「1」と「3」の間の距離を求めたいと思う。そして、「2」と「4」? –
出力は正確には何ですか? –
@ Mr.goosberry - はい、それは私が望むものですが、私のリストのサイズは常に変わります – vanoccupanther