前提・実現したいこと
座標が格納されたリストa,bがあり、そこからaとbのお互いの最も近い座標同士を一対一で対応させたいです
発生している問題・エラーメッセージ
実行結果が
[45.967379738244816 array([ 38, 139]) array([ 70, 172])] [24.166091947189145 array([ 60, 150]) array([ 70, 172])] [155.32224567009067 array([188, 71]) array([ 70, 172])] [44.68780594300866 array([ 41, 138]) array([ 70, 172])]
となり、本来は
[24.166091947189145 array([ 60, 150]) array([ 70, 172])]
を採用して、次はこの座標を除いてそれぞれを比較し、どちらかのリストの要素がなくなるまでそれを繰り返したいのですがどうしたら良いでしょうか?
該当のソースコード
python
1import numpy as np 2 3a = np.array([[38,139], [60,150], [188, 71], [41, 138]]) 4b = np.array([[23,188], [70, 172], [52, 196]]) 5 6for i in a: 7 min = np.linalg.norm(i - b[0]) 8 for j in b: 9 c = np.linalg.norm(i - j) 10 if min > c: 11 min = c 12 #index_a = np.where(a[:] == i) 13 #index_b = np.where(b[:] == j) 14 result = np.array([min, i, j]) 15 else: 16 pass 17 print(result)
試したこと
補足情報(FW/ツールのバージョンなど)
Python 3.7.4
numpy 1.16.4
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。