Computing the matrix-vector product
y = (Q1 kron Q2 kron ... kron Qm) * x
can be done without ever forming the big matrix of Kronecker products. This m-file implements an algorithm for this task from page 394 of Fernandes, et al. 1998, JACM 45(3): 381--414 (doi:10.1145/278298.278303). The implementation works where X is a matrix too.
Don't be scared off by the for-loops, this code works well with the Matlab JIT compiler and works for vectors with over 50 million entries.
David Gleich (2021). Fast and Efficient Kronecker Multiplication (https://www.mathworks.com/matlabcentral/fileexchange/23606-fast-and-efficient-kronecker-multiplication), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Inspired: Fast Kronecker matrix multiplication
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!