band
==============================================
Purpose
----------------
Extracts bands from a symmetric banded matrix.
Format
----------------
.. function:: a = band(y, n)
:param y: KxK symmetric banded matrix
:type y: matrix
:param n: number of subdiagonals.
:type n: scalar
:return a: Kx(N+1) matrix, 1 subdiagonal per column.
:rtype a: matrix
Examples
----------------
::
x = { 1 2 0 0,
2 8 1 0,
0 1 5 2,
0 0 2 3 };
// Extract only the principal diagonal
b0 = band(x,0);
// Extract the principal diagonal and the first subdiagonal
b1 = band(x,1);
// Extract the principal diagonal and the first two subdiagonals
b2 = band(x,2);
After the code above:
::
1 0 1 0 0 1
b0 = 8 b1 = 2 8 b2 = 0 2 8
5 1 5 0 1 5
3 2 3 0 2 3
Remarks
-------
*y* can actually be a rectangular PxQ matrix. *K* is then defined as
min(P,Q). It will be assumed that *a* is symmetric about the principal
diagonal for y[1:K,1:K].
The subdiagonals of *y* are stored right to left in *a*, with the principal
diagonal in the rightmost or (N+1)th column of *a*. The upper left corner
of *a* is unused; it is set to 0.
This compact form of a banded matrix is what :func:`bandchol` expects.
.. seealso:: Functions :func:`bandchol`, :func:`bandcholsol`, :func:`bandltsol`, :func:`bandrv`, :func:`bandsolpd`