Check if a matrix has support

136 Views Asked by At

From Sinkhorn & Knopp (1967):

If $\mathbf{A}$ is an $N \times N$ matrix and $\sigma$ is a permutation of $\{1, \dots, N\}$, then the sequence of elements $a_{1, \sigma(1)}, \dots, a_{N, \sigma(N)}$ is called the diagonal of $\mathbf{A}$, corresponding to $\sigma$.

In order to guarantee the convergence of Sinkhorn-Knopp algorithm for square matrix balancing, we require that a matrix $\mathbf{A}$ has support, that is, it must contain at least one diagonal with only positive elements.

As an example: \begin{equation} \begin{pmatrix} 1 & 0 & 0 \\ 0 & 2 & 3 \\ 0 & 5 & 0 \\ \end{pmatrix} \end{equation}

This matrix has support because the entries $1$, $3$, $5$ reside in a diagonal.

Is there an easy way to check if a matrix has support?