1. ホーム
  2. python

[解決済み] Pythonによる2つのn次元ベクトル間の角度の計算

2023-01-16 01:27:56

質問

Pythonで2つのn次元ベクトル間の角度を求める必要があります。例えば、入力は次のような2つのリストです。 [1,2,3,4][6,7,8,9] .

どのように解決するのですか?

import math

def dotproduct(v1, v2):
  return sum((a*b) for a, b in zip(v1, v2))

def length(v):
  return math.sqrt(dotproduct(v, v))

def angle(v1, v2):
  return math.acos(dotproduct(v1, v2) / (length(v1) * length(v2)))

注意 : ベクトルの向きが同じか反対の場合、これは失敗します。正しい実装はこちらです。 https://stackoverflow.com/a/13849249/71522