File Exchange

image thumbnail

block diagonal multiplication

version (2.27 KB) by David Holdaway
Used for multiplying large block diagonal matrices with matrices / vectors.


Updated 26 Apr 2012

View Version History

View License

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 (2021). block diagonal multiplication (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (0)

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

Community Treasure Hunt

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

Start Hunting!