私のコードはもっとうまくできると思います...
私が欲しいもの:
array a = ([1,2,3],[4,5,6],[7,8,9])
array b = ([2,3,4],[2,2,2])
からのユークリッド距離 a[0] to b[0] and b[1]
、次にその最小値など、他の値と...
結果はそのようなものでなければなりません
result = ([1,2])
私がやった方法は少し複雑だと思います:
result = [0]*len(b)
for i in a:
c = 0
minimum = euclid(a[0],b[0])
place = 0
for j in b:
c=c+1
if (minimum > euclid(i,j)):
minimum = euclid(i,j)
place = c
result[place-1] = result[place-1]+1
わかりました、私はそれをよりよく説明しようとします。2 つの配列 A と B があります 配列 A には 3 つの値があります (値 <=> [1,2,3]) 今、A のすべての値と B のすべての値のユークリッド距離を計算し、B の頻度を数えたいと思います[0] または B[1] が最小値でした。
だから私はコードマニュアルを開始します:最初に私はb [0]でa [0]を計算し、現時点では最小値がないため、それが最小値であることがわかりました。次に、b[1] で a[0] を計算し、euclidean(a[0],b[1]) < euchlidean(a[0],b[0]) であることがわかったので、次の場所にある配列を設定しますc([0,0]) から c([0,1]) までの瞬間。次に、ユークリッド距離 a[1] から b[0] および b[1] を計算し、b[0] がこの 2 つの値の最小値であることがわかったので、c を c([1,1]) に設定します。 .