Matrix inversion, mldivide, and mrdivide taking advantage of user-defined sub-matrix structure.
You are now following this Submission
- You will see updates in your followed content feed
- You may receive emails, depending on your communication preferences
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 (2026). Block Matrix Inverse tools (https://github.com/wrongu/block-matrix-inverse-tools), GitHub. Retrieved .
Acknowledgements
Inspired: kfs_suite
General Information
- Version 1.0.0.0 (4.79 KB)
-
View License on GitHub
MATLAB Release Compatibility
- Compatible with any release
Platform Compatibility
- Windows
- macOS
- Linux
Versions that use the GitHub default branch cannot be downloaded
| Version | Published | Release Notes | Action |
|---|---|---|---|
| 1.0.0.0 |
