时间:2021-05-22
如图所示,我们要计算任意两个向量之间的夹角。
(图中的坐标数字是估计值,随手给定)
python代码如下
import math AB = [1,-3,5,-1]CD = [4,1,4.5,4.5]EF = [2,5,-2,6]PQ = [-3,-4,1,-6]def angle(v1, v2): dx1 = v1[2] - v1[0] dy1 = v1[3] - v1[1] dx2 = v2[2] - v2[0] dy2 = v2[3] - v2[1] angle1 = math.atan2(dy1, dx1) angle1 = int(angle1 * 180/math.pi) # print(angle1) angle2 = math.atan2(dy2, dx2) angle2 = int(angle2 * 180/math.pi) # print(angle2) if angle1*angle2 >= 0: included_angle = abs(angle1-angle2) else: included_angle = abs(angle1) + abs(angle2) if included_angle > 180: included_angle = 360 - included_angle return included_angleang1 = angle(AB, CD)print("AB和CD的夹角")print(ang1)ang2 = angle(AB, EF)print("AB和EF的夹角")print(ang2)ang3 = angle(AB, PQ)print("AB和PQ的夹角")print(ang3)ang4 = angle(CD, EF)print("CD和EF的夹角")print(ang4)ang5 = angle(CD, PQ)print("CD和PQ的夹角")print(ang5)ang6 = angle(EF, PQ)print("EF和PQ的夹角")print(ang6)结果为
AB和CD的夹角55AB和EF的夹角139AB和PQ的夹角52CD和EF的夹角84CD和PQ的夹角107EF和PQ的夹角169以上这篇Python 计算任意两向量之间的夹角方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
计算PythonNumpy向量之间的欧氏距离,已知vec1和vec2是两个Numpy向量,欧氏距离计算如下:importnumpydist=numpy.sqrt
1、余弦相似度余弦相似度衡量的是2个向量间的夹角大小,通过夹角的余弦值表示结果,因此2个向量的余弦相似度为:余弦相似度的取值为[-1,1],值越大表示越相似。向
本文实例讲述了Java基于余弦方法实现的计算相似度算法。分享给大家供大家参考,具体如下:(1)余弦相似性通过测量两个向量之间的角的余弦值来度量它们之间的相似性。
摘要:算法导论之FloydWarshall算法求一个图中任意两点之间的最短路径FloydWarshall算法是通过动态规划来计算任意两点之间的最短路径如果普通求
本文实例讲述了Python实现计算两个时间之间相差天数的方法。分享给大家供大家参考,具体如下:#-*-encoding:UTF-8-*-fromdatetime