Block Matrix Inverse tools

Matrix inversion, mldivide, and mrdivide taking advantage of user-defined sub-matrix structure.
179 Downloads
Updated 31 May 2018

Matlab has very good built-in support for fast matrix inversion exploiting the structure of a matrix. See the algorithms section of the documentation on `mldivide` for more information: https://www.mathworks.com/help/matlab/ref/mldivide.html#bt4jslc-6
The functions provided here were initially written to support a latent Gaussian Process inference implementation, where we frequently encounter large matrices which have sub-matrices with "nice" structure, but the full matrix does not. These functions implement matrix inversion (`blockinv`) and division (`blockmldivide` and `blockmrdivide`) by extracting sub-matrices of a user-defined size and calling the matlab built-ins on them. In certain cases, this means that the built-ins are able to exploit structure in the sub-matrices for very fast inversion and quickly combine the results together.

In general, expect these functions to be slower than simply using built-ins unless you are sure that your sub-matrices (but not the full matrix) have the kind of structure exploited by mldivide.

Cite As

Richard Lange (2024). Block Matrix Inverse tools (https://github.com/wrongu/block-matrix-inverse-tools), GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2016a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Acknowledgements

Inspired: kfs_suite

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Versions that use the GitHub default branch cannot be downloaded

Version Published Release Notes
1.0.0.0

To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.