Matrix
通用复值矩阵类,在量子态和信道表示内部使用。Matrix 封装了底层复矩阵并提供基本的线性代数运算。
签名
python
Matrix(data: numpy.ndarray)构造函数
默认构造函数
python
Matrix()构造空的 Matrix 对象。
从数据构造
python
Matrix(data: numpy.ndarray)从二维复数 numpy 数组(或 Eigen 矩阵)构造 Matrix。
| 参数 | 类型 | 说明 |
|---|---|---|
| data | numpy.ndarray | 复数的二维数组。 |
方法
ndarray
python
ndarray() -> numpy.ndarray返回内部矩阵数据作为 numpy.ndarray。
row_total
python
row_total() -> int返回矩阵的行数。
col_total
python
col_total() -> int返回矩阵的列数。
is_hermitian
python
is_hermitian() -> bool如果矩阵是厄米矩阵则返回 True,即
transpose
python
transpose() -> Matrix返回矩阵的转置
T
python
T() -> Matrixtranspose() 的别名。返回矩阵的转置。
hermitian_conjugate
python
hermitian_conjugate() -> Matrix返回矩阵的共轭转置(厄米伴随)
adjoint
python
adjoint() -> Matrixhermitian_conjugate() 的别名。返回矩阵的共轭转置。
L2
python
L2() -> float返回矩阵的 L2(Frobenius)范数:
at
python
at(rowIdx: int, colIdx: int) -> complex返回指定行和列索引处的元素。
| 参数 | 类型 | 说明 |
|---|---|---|
| rowIdx | int | 行索引(从 0 开始)。 |
| colIdx | int | 列索引(从 0 开始)。 |
运算符
相等
python
matrix_a == matrix_b -> bool如果两个矩阵具有相同的内部数据则返回 True。
示例
python
import numpy as np
from pyqpanda3.quantum_info import Matrix
# 从 numpy 数组构造
data = np.array([[1+0j, 0+1j],
[0-1j, 1+0j]])
m = Matrix(data)
print(m.row_total()) # 2
print(m.col_total()) # 2
print(m.is_hermitian()) # True
# 转置和伴随
mt = m.transpose()
ma = m.adjoint()
# 访问单个元素
val = m.at(0, 1) # 0+1j
# 获取底层 numpy 数组
arr = m.ndarray()