我一直试图找到一种计算长度为x的n个向量之间所有角度的快速算法。例如,如果x = 3且n = 4,我的数据将如下所示:
答:[1,2,3]
B:[2,3,4]
C:[...]
D:[...]
我想知道是否可以找到所有向量(A,B,C,D)相对于某些固定向量(即X:[100,100,100,100])之间的角度,然后减去角度(找到关于该固定值的A,B,C,D),以找到它们之间的角度。我想这样做是因为我只需要计算一次角度然后我可以减去所有矢量的角度以找到它们之间的不同。简而言之,我想知道做出这个假设是否安全?
angle_between(A,B)== angle_between(A,X) - angle_between(B,X)
和angle_between函数是余弦相似度。
答案 0 :(得分:0)
该方法仅适用于二维向量。对于更高的维度,任何两个向量都将定义超平面,并且只有当第三个(参考)向量也位于此超平面内时,您的方法才能工作。不幸的是,为了确定每对矢量之间的角度而不是仅计算n
个角度并减去它们,您必须计算它们的所有n choose 2
。