小编RRS*_*RRS的帖子

计算numpy中两个矩阵的行之间的角度

我有两个由 3d 向量(numpy 1D 数组)组成的矩阵,我需要按行计算向量之间的角度,并以 1d 数组返回结果。我知道如何计算两个一维向量之间的角度。执行此操作的正确方法是什么?

*** 所得角度以度数而非弧度为单位。

现在我有这个:

import numpy as np

A = np.array([[1,0,0],
              [0,1,0],
              [0,0,1]])

B = np.array([[1,0,1],
              [1,1,0],
              [0,1,0]])

def angle(V1,V2):
    """
    angle between vectors V1 and V2 in degrees using
    angle = arccos ( V1 dot V2 / norm(V1) * norm(V2) ) *180/np.pi
    """

    cos_of_angle = V1.dot(V2) / (np.linalg.norm(V1) * np.linalg.norm(V2)) 
    return np.arccos(np.clip(cos_of_angle,-1,1))  * 180/np.pi
Run Code Online (Sandbox Code Playgroud)

请注意从 rad 到 deg 转换的缩放项 180/np.pi。

我想要一个数组:

C = [ angle(A[0],B[0]) , angle(A[1],B[1])...... and so on]
Run Code Online (Sandbox Code Playgroud)

如果有人可以提供帮助,我真的很感激。

python numpy vector angle matrix

5
推荐指数
1
解决办法
3651
查看次数

标签 统计

angle ×1

matrix ×1

numpy ×1

python ×1

vector ×1