diag#
- class brainunit.math.diag(v, k=0, unit=Unit('1'))#
Extract a diagonal or construct a diagonal array.
If
vis a 1-D array,diagconstructs a 2-D array withvon thek-th diagonal. Ifvis a 2-D array,diagextracts thek-th diagonal and returns a 1-D array.- Parameters:
v (saiunit.Quantity |
Array|ndarray|bool|number|bool|int|float|complex) – Input array. 1-D inputs produce a 2-D diagonal matrix; 2-D inputs have theirk-th diagonal extracted.k (
int) – Diagonal in question. The default is 0. Usek > 0for diagonals above the main diagonal andk < 0for diagonals below.unit (saiunit.Unit) – Unit of the returned
Quantity. Ignored whenvalready carries a unit.
- Returns:
out – The extracted diagonal or constructed diagonal array.
- Return type:
saiunit.Quantity |
Array
Examples
>>> import saiunit as u >>> import jax.numpy as jnp >>> u.math.diag(jnp.array([1.0, 2.0, 3.0])) Array([[1., 0., 0.], [0., 2., 0.], [0., 0., 3.]], dtype=float32) >>> u.math.diag(jnp.array([1.0, 2.0]), unit=u.meter) Quantity([[1. 0.] [0. 2.]], "m")