# Labeling the Dimensions of a Matrix

Included below is a picture of what I'm trying to set in Latex. In word, I have a matrix of size k x k, and I want to label the rows and columns as such. Creating the matrix is no issue, it's including the labels that's being a problem.

\documentclass{article}
\usepackage{amsmath}
\begin{document}
$\underbrace{ \begin{bmatrix} 1/2 & 1/2 & 0 & 0 & \cdots & 0\\ 0 & 1/2 & 1/2 & 0 & \cdots & 0\\ 0 & 0 & 1/2 & 1/2 & \cdots & 0\\ \vdots & \vdots & \vdots & \ddots & \vdots & \vdots\\ 1/2 & 0 & 0 & 0 & \cdots & 1/2\\ \end{bmatrix}}_{\displaystyle k} \left.\vphantom{\begin{bmatrix} 1/2 & 1/2 & 0 & 0 & \cdots & 0\\ 0 & 1/2 & 1/2 & 0 & \cdots & 0\\ 0 & 0 & 1/2 & 1/2 & \cdots & 0\\ \vdots & \vdots & \vdots & \ddots & \vdots & \vdots\\ 1/2 & 0 & 0 & 0 & \cdots & 1/2\\ \end{bmatrix}}\right\}k$
\end{document}


Not easy, but hey! It works!

\documentclass{article}
\usepackage{amsmath}

\usepackage{lipsum}

\begin{document}

\lipsum*[3]
$\left. \begin{bmatrix}\, \smash{ \underbrace{ \begin{matrix} 1/2 & 1/2 & 0 & 0 & \dots & 0 \\ 0 & 1/2 & 1/2 & 0 & \dots & 0 \\ 0 & 0 & 1/2 & 1/2 & \dots & 0 \\ \vdots & \vdots & \vdots & \vdots & \ddots & \vdots \\ 1/2 & 0 & 0 & 0 & \dots & 1/2 \end{matrix} }_{k} } \vphantom{ \begin{matrix} \smash[b]{\vphantom{\Big|}} 0\\0\\0\\vdots\\0 \smash[t]{\vphantom{\Big|}} \end{matrix} } \,\end{bmatrix} \right\rbrace{\scriptstyle k} \vphantom{\underbrace{\begin{matrix}0\\0\\0\\vdots\\0\end{matrix}}_{k}}$
\lipsum[4]

\end{document}


The inner part of the matrix is underbraced and smashed so the underbrace is not taken into account; for setting the vertical size I use a \vphantom containing a slightly oversized matrix. Next the right brace is easy to produce. Finally another phantom takes care of the vertical space taken by the underbrace.

It's simple with a TikZ matrix and brace decorations:

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{matrix}
\usetikzlibrary{decorations.pathreplacing}

\usepackage{mwe}% for testing purpose only

\begin{document}

\blindtext% for testing purpose only

Like this:
\begin{tikzpicture}[decoration={brace,amplitude=6pt}] \matrix[matrix of math nodes, nodes={text width=2em, align=center}, left delimiter={[},right delimiter={]}, ] (m) { 1/2 & 1/2 & 0 & 0 & \dots & 0 \\ 0 & 1/2 & 1/2 & 0 & \dots & 0 \\ 0 & 0 & 1/2 & 1/2 & \dots & 0 \\ \vdots & \vdots & \vdots & \vdots & \ddots & \vdots \\ 1/2 & 0 & 0 & 0 & \dots & 1/2\\ }; \draw[decorate] ([xshift=16pt]m-1-6.north east) -- ([xshift=16pt]m-5-6.south east) node[midway, anchor=west, xshift=6pt]{k}; \draw[decorate] ([yshift=-10pt]m-5-6.south east) -- ([yshift=-10pt]m-5-1.south west) node[midway, anchor=north, yshift=-6pt]{k}; \end{tikzpicture}
or, similarly, like this:
\begin{tikzpicture}[decoration={brace,amplitude=6pt}] \matrix[matrix of math nodes, nodes={text width=2em, align=center}, left delimiter={[},right delimiter={]}, ] (m) { 1/2 & 1/2 & 0 & 0 & \dots & 0 \\ 0 & 1/2 & 1/2 & 0 & \dots & 0 \\ 0 & 0 & 1/2 & 1/2 & \dots & 0 \\ \vdots & \vdots & \vdots & \vdots & \ddots & \vdots \\ 1/2 & 0 & 0 & 0 & \dots & 1/2\\ }; \draw[decorate] ([xshift=12pt]m.north east) -- ([xshift=12pt]m.south east) node[midway, anchor=west, xshift=6pt]{k}; \draw[decorate] ([yshift=-8pt]m.south east) -- ([yshift=-8pt]m.south west) node[midway, anchor=north, yshift=-6pt]{k}; \end{tikzpicture}
\blindtext% for testing purpose only

\end{document}