One option using a matrix of math nodes
(change the settings, colorts, according to your needs):
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\[
\begin{tikzpicture}[baseline,>=latex]
\matrix[
matrix of math nodes,
nodes in empty cells,
left delimiter=(,
right delimiter=),
nodes={text height=8pt,text depth=2pt,text width=10pt}
] (mat)
{
& & & \\
& & & \\
& & & \\
& & & \\
};
\foreach \Valor in {1,...,4}
\draw (mat-\Valor-1.south west) -| (mat-1-\Valor.north east);
\draw[->]
(mat-1-1.center)
to[out=60,in=150]
([xshift=1cm]mat.east|-mat-1-1)
node[anchor=west] {some text}
;
\draw[->]
(mat-2-2.center)
to[out=60,in=180]
([xshift=1cm]mat.east|-mat-2-2)
node[anchor=west] {some text}
;
\draw[->]
(mat-3-3.center)
to[out=60,in=180]
([xshift=1cm]mat.east|-mat-3-3)
node[anchor=west] {some text}
;
\draw[->]
(mat-4-4.center)
to[out=60,in=180]
([xshift=1cm]mat.east|-mat-4-4)
node[anchor=west] {some text}
;
\end{tikzpicture}
\]
\end{document}

One can even simplify to just one \foreach
loop:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\[
\begin{tikzpicture}[baseline,>=latex]
\matrix[
matrix of math nodes,
nodes in empty cells,
left delimiter=(,
right delimiter=),
nodes={text height=8pt,text depth=2pt,text width=10pt}
] (mat)
{
& & & \\
& & & \\
& & & \\
& & & \\
};
\foreach \Valor/\Texto in
{
1/{Some text 1},
2/{Some text 2},
3/{Some text 3},
4/{Some text 4}
}
{
\draw (mat-\Valor-1.south west) -| (mat-1-\Valor.north east);
\draw[->]
(mat-\Valor-\Valor.center)
to[out=60,in=180]
([xshift=1cm]mat.east|-mat-\Valor-\Valor)
node[anchor=west] {\Texto}
;
}
\end{tikzpicture}
\]
\end{document}
