angle

paddle. angle ( x, name=None, *, out=None ) [源代码]

逐元素计算复数的相位角。对于非负实数,相位角为 0,而对于负实数,相位角为 \(\pi\)

\[angle(x) = arctan2(x.imag, x.real)\]

参数

  • x (Tensor) - 输入的 Tensor,数据类型为:complex64, complex128 或 float32, float64。别名 input

  • name (str,可选) - 具体用法请参见 api_guide_Name,一般无需设置,默认值为 None。

关键字参数

  • out (Tensor,可选) - 输出 Tensor,若不为 None,计算结果将保存在该 Tensor 中,默认值为 None

返回

输出实数 Tensor,与 x 的数值精度一致。

代码示例

>>> import paddle

>>> x = paddle.to_tensor([-2, -1, 0, 1]).unsqueeze(-1).astype('float32')
>>> y = paddle.to_tensor([-2, -1, 0, 1]).astype('float32')
>>> z = x + 1j * y
>>> z
Tensor(shape=[4, 4], dtype=complex64, place=Place(cpu), stop_gradient=True,
[[(-2.00000000-2.00000000j), (-2.00000000-1.00000000j),
  (-2.00000000+0.00000000j), (-2.00000000+1.00000000j)],
 [(-1.00000000-2.00000000j), (-1.00000000-1.00000000j),
  (-1.00000000+0.00000000j), (-1.00000000+1.00000000j)],
 [(0.00000000-2.00000000j) , (0.00000000-1.00000000j) ,
   (0.00000000+0.00000000j),  (0.00000000+1.00000000j)],
 [ (1.00000000-2.00000000j),  (1.00000000-1.00000000j),
   (1.00000000+0.00000000j),  (1.00000000+1.00000000j)]])

>>> theta = paddle.angle(z)
>>> theta
Tensor(shape=[4, 4], dtype=float32, place=Place(cpu), stop_gradient=True,
[[-2.35619450, -2.67794514,  3.14159274,  2.67794514],
 [-2.03444386, -2.35619450,  3.14159274,  2.35619450],
 [-1.57079637, -1.57079637,  0.        ,  1.57079637],
 [-1.10714877, -0.78539819,  0.        ,  0.78539819]])