Create banded matrix from arbitrary real square matrix

Create a banded matrix B with bandwidth bw from an arbitrary real square matrix A

You are now following this Submission

Create a banded matrix B with bandwidth bw from an arbitrary real square matrix A using a similarity transformation.
[B, T, Ti] = banddiag(A, bw) produces a banded matrix B with bandwidth bw and the similarity transformation matrix T and its inverse Ti so that B = T*A*Ti and T*Ti = I. The matrix B has nonzero entries only on the main diagonal and bw diagonals on either side.
The Algorithm uses successive QR steps to reduce the input matrix A to a banddiagonal structure.
The bandwidth bw is an integer with bw > 0. For b == 1, the matrix B becomes tridiagonal and for bw >= n-1, the matrix B is equal to A.

Cite As

Michael Hubatka (2026). Create banded matrix from arbitrary real square matrix (https://www.mathworks.com/matlabcentral/fileexchange/133177-create-banded-matrix-from-arbitrary-real-square-matrix), MATLAB Central File Exchange. Retrieved .

Acknowledgements

Inspired by: Tridiagonalize arbitrary real square matrices

General Information

MATLAB Release Compatibility

  • Compatible with R2019b and later releases

Platform Compatibility

  • Windows
  • macOS
  • Linux
Version Published Release Notes Action
1.0.0