I am trying to implement Grassmanian rank one update (GROUSE) as per this paper . For the solution of the least squares problem of (1) in the paper the value of $w$ is
$w$ = $(U_{\Omega_{t}}^TU_{\Omega_{t}})^{-1}U_{\Omega_{t}}^Tv_{\Omega_{t}}$
Where $U$ is an $n$ x $d$ ($d$ <$n$) orthogonal matrix and $U_{\Omega_{t}}$ is a sub matrix constructed by selecting the rows from orthogonal matrix $U$ as per the row indices stored in the set $\Omega_{t}$ e.g if $\Omega_{t}$ = $(1,2,4,11,..45,...)$ then the respective rows are stacked to form $U_{\Omega_{t}}$ . But every time I try to calculate $w$ in R Studio it says $(U_{\Omega_{t}}^TU_{\Omega_{t}})$ is singular. Note the indices in set $\Omega_{t}$ are randomly generated. So I have no choice of row selection of $U$. Is a sub matrix of an Orthogonal matrix always singular?
Here is the R code
w_t = (solve(t(U_t_omega) %*% (U_t_omega))) %*% t(U_t_omega) %*% (v_t_omega)
An example: Let $$U = \left( \begin{matrix} 1 & 0 \\ 0 & 1\\ 0 & 0 \\ 0 & 0 \end{matrix} \right)$$
If you select a subset $\Omega\subset \{1,2,3,4\}$ then $\Omega$ has to contain both 1 and 2, or else $U_\Omega$ will have rank less than 2 (and thus your product be singular). For example with $\Omega=\{2,3,4\}$:
$$U_\Omega = \left( \begin{matrix} 0 & 1\\ 0 & 0 \\ 0 & 0 \end{matrix} \right)$$ And $U_\Omega^T U_\Omega = \left( \begin{matrix} 0 & 0\\ 0 & 1 \end{matrix} \right)$ is singular.