angle with $\boldsymbol{v}$) in (\[eq:our2\]). After selecting the first data point ($\boldsymbol{a}_{m^{(1)}}$), we project all data points onto the null space of the selected sample. This forms a new matrix $\boldsymbol{A}(\boldsymbol{I}-\Tilde{{\boldsymbol{a}}}_{m^{(1)}}\Tilde{{\boldsymbol{a}}}_{m^{(1)}}^T)$, where $\boldsymbol{I}$ is an identity matrix. We solve (\[eq:IPM\_main\]) with this new matrix to find the second data point. This process will continue until we select $K$ data points. It should be noted that the null space of selected sample(s) indicates a subspace that the selected sample(s) cannot span. Therefore, the next selected data is obtained by only searching in this null space.

Algorithm \[alg:IPM\] shows the steps of the proposed iterative projection and matching (IPM) algorithm, in which $m^{(k)}$ denotes the index of the selected data at the $k^{th}$ iteration. IPM is a low-complexity algorithm with no parameters to be tuned. These features in addition to its superior performance (as will be shown in many scenarios in Section \[sec:experiments\]) make IPM very desirable for a wide range of applications. Time complexity order of computing the first singular component of an $M\times N$ matrix is $O(MN)$ [@Comon1990TrackingProcessing]. As the proposed algorithm only needs the first singular component for each selection, its time complexity is $O(KNM)$, which is much faster 