block diagonal multiplication

Used for multiplying large block diagonal matrices with matrices / vectors.

You are now following this Submission

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://www.mathworks.com/matlabcentral/fileexchange/35717-block-diagonal-multiplication), MATLAB Central File Exchange. Retrieved .

General Information

MATLAB Release Compatibility

  • Compatible with any release

Platform Compatibility

  • Windows
  • macOS
  • Linux
Version Published Release Notes Action
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