block diagonal multiplication
Used to perform B*M or M*B with B a block diagonal matrix, B is stored as a cell array (call it C) with each element a matrix as a block of B, such that B = blkdiag(C{:}).
This speeds up the multiplication when B is large and also allows the operation to take place when B could not fit in the memory stored as a full block diagonal matrix.
Operations B'*M = (M'*B)' and M*B' can be performed using transpose identities
Cite As
David Holdaway (2026). block diagonal multiplication (https://uk.mathworks.com/matlabcentral/fileexchange/35717-block-diagonal-multiplication), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
Tags
Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
| Version | Published | Release Notes | |
|---|---|---|---|
| 1.1.0.0 | Modified the program to give an error rather than a warning when the matrix multiplication is not possible. Changed the way the program deals with sparse inputs, only converting sections to full matrices when an extra argument "tryfull" is given. |
||
| 1.0.0.0 |
