Skip to content
Free public beta until December 4, 2026: every course is open, no card needed. After that, the first chapter of each course stays free and full access is a one-time $39 ($19 for up to 100 founding members chosen for helpful feedback). Your progress is kept. How the beta works

Recipe

Multiply two block-partitioned matrices

Use when: you have two matrices split into blocks with matching block-column widths and block-row heights, and need one or more blocks of the product C=AB

Goal: the requested block (or blocks) of C, computed by the same row-times-column rule as ordinary multiplication, applied one level up to sub-matrices

Taught in Block (partitioned) matrices

  1. 1

    A's block-column widths must match B's block-row heights — the same inner-dimension rule ordinary matrix multiplication always requires, just applied to whole groups of columns and rows instead of individual ones.

    Example

    A is partitioned into 2\times2 blocks with block-columns of width 2 and 2; B is partitioned into block-rows of height 2 and 2. The widths and heights line up, so A_{it}B_{tj} will make sense for every i,j,t.

    Why: if a block's width didn't match its partner's height, the individual matrix product A_{it}B_{tj} inside the block sum wouldn't be defined at all — conformability has to hold block by block, not just for the outer dimensions.

  2. 2

    Block (i,j) of C is \sum_t A_{it}B_{tj} — write out which specific pairs of blocks that sum actually calls for before multiplying anything.

    Example

    For C_{12} (block-row 1, block-column 2) with a 2\times2 grid of blocks, t ranges over 1,2: C_{12}=A_{11}B_{12}+A_{12}B_{22}. Blocks A_{21}, A_{22}'s pairing with B_{11}, and B_{21} never enter this particular sum.

    Why: this mirrors (AB)_{ij}=\sum_t a_{it}b_{tj} exactly, one level up — knowing the needed pairs in advance means never wasting effort on a block that doesn't contribute to the one you were actually asked for.

  3. 3

    Each A_{it}B_{tj} is an ordinary matrix product — multiply it out row by row exactly as any other matrix multiplication.

    Example

    A_{11}B_{12}=\begin{pmatrix}1&0\\2&1\end{pmatrix}\begin{pmatrix}1&2\\0&1\end{pmatrix}=\begin{pmatrix}1&2\\2&5\end{pmatrix}, \qquad A_{12}B_{22}=\begin{pmatrix}3&-1\\0&2\end{pmatrix}\begin{pmatrix}1&0\\-2&1\end{pmatrix}=\begin{pmatrix}5&-1\\-4&2\end{pmatrix}

    Why: a block is a whole sub-matrix, so "multiplying" it means the full matrix-multiplication recipe, not a single scalar multiplication — nothing about being a block changes how a matrix product itself is computed.

  4. 4

    Sum the block products from Step 3 the way block addition always works: matching position, matching size, added entry by entry.

    Example

    C_{12}=\begin{pmatrix}1&2\\2&5\end{pmatrix}+\begin{pmatrix}5&-1\\-4&2\end{pmatrix}=\begin{pmatrix}6&1\\-2&7\end{pmatrix}

    Why: the sum \sum_t A_{it}B_{tj} is literally an ordinary matrix sum of the individual block products — nothing in the block picture changes what "add two matrices" means.

Common mistakes

  • Skipping the conformability check and multiplying two blocks whose inner sizes don't actually match.
  • Computing every block of the product when only one was asked for, instead of using Step 2 to find just the pairs a target block needs.
  • Dropping a term from the sum \sum_t A_{it}B_{tj} — every value of t contributes one block product, not just the first.
  • Adding the block products from Step 3 in the wrong order or against the wrong partner, mixing up which block product belongs to which target.
  • Treating a block like a single number — a 2\times2 block still needs the full row-times-column recipe, not one multiplication.