mindspore.ops.Eig

class mindspore.ops.Eig(compute_v=False)[源代码]

计算输入方阵(batch方阵)的特征值和特征向量。

参数:
  • compute_v (bool,可选) - 如果为True,同时计算特征值和特征向量,如果为False,只计算特征值,默认值:False。

输入:
  • x (Tensor) - 方阵。shape为 \((*, N, N)\),数据类型支持 float32、float64、complex64、complex128。

输出:
  • eigen_values (Tensor) - shape为 \((*, N)\),其中的每个向量代表对应矩阵的特征值,特征值之间没有顺序关系。

  • eigen_vectors (Tensor) - 如果 compute_v 为False,此为空Tensor,否则,为shape \((*, N, N)\) 的Tensor。 其列表示相应特征值的规范化(单位长度)特征向量。

异常:
  • TypeError - 如果 compute_v 数据类型不是一个bool。

  • TypeError - 如果 x 的数据类型不是: float32、float64、complex64或者complex128。

  • TypeError - 如果 x 不是一个Tensor。

  • ValueError - 如果 x 不是一个方阵(batch方阵)。

支持平台:

Ascend CPU

样例:

>>> input_x = Tensor(np.array([[1.0, 0.0], [0.0, 2.0]]), mindspore.float32)
>>> eig = ops.Eig(compute_v=True)
>>> u, v = eig(input_x)
>>> print(u)
[1.+0.j 2.+0.j]
>>> print(v)
[[1.+0.j 0.+0.j]
 [0.+0.j 1.+0.j]]