toqito.perms.vec¶
Performs the vec operation on a matrix.
Module Contents¶
- toqito.perms.vec.vec(mat)[source]¶
Perform the vec operation on a matrix.
For more info, see Section: The Operator-Vector Correspondence from [@Watrous_2018_TQI].
The function reorders the given matrix into a column vector by stacking the columns of the matrix sequentially.
For instance, for the following matrix:
- [
X = begin{pmatrix}
1 & 2 \ 3 & 4
end{pmatrix}
]
it holds that
- [
text{vec}(X) = begin{pmatrix} 1 & 3 & 2 & 4 end{pmatrix}^T
]
More formally, the vec operation is defined by
- [
text{vec}(E_{a,b}) = e_a otimes e_b
]
for all (a) and (b) where
- [
- E_{a,b}(c,d) = begin{cases}
1 & text{if} (c,d) = (a,b) \ 0 & text{otherwise}
end{cases}
]
for all (c) and (d) and where
- [
- e_a(b) = begin{cases}
1 & text{if} a = b \ 0 & text{if} a not= b
end{cases}
]
for all (a) and (b).
Examples
Consider the following matrix
- [
- A = begin{pmatrix}
1 & 2 \ 3 & 4
end{pmatrix}
]
Performing the (text{vec}) operation on (A) yields
- [
text{vec}(A) = left[1, 3, 2, 4 right]^{T}.
]
```python exec=”1” source=”above” import numpy as np from toqito.perms import vec
X = np.array([[1, 2], [3, 4]])
- !!! See Also
[unvec()][toqito.matrix_ops.unvec.unvec]
- Parameters:
mat (numpy.ndarray) – The input matrix.
- Returns:
The vec representation of the matrix.
- Return type:
numpy.ndarray