Procrustes problems are matrix approximation problems searching for
a~transformation of the given dataset to fit another dataset. They find
applications in numerous areas, such as factor and multivariate analysis,
computer vision, multidimensional scaling or finance. The known methods for
solving Procrustes problems have been designed to handle specific sub-classes,
where the set of feasible solutions has a special structure (e.g. a Stiefel
manifold), and the objective function is defined using a specific matrix norm
(typically the Frobenius norm). We show that a wide class of Procrustes
problems can be formulated and solved as a (rank-constrained) semi-definite
program. This includes balanced and unbalanced (weighted) Procrustes problems,
possibly to a partially specified target, but also oblique, projection or
two-sided Procrustes problems. The proposed approach can handle additional
linear, quadratic, or semi-definite constraints and the objective function
defined using the Frobenius norm but also standard operator norms. The results
are demonstrated on a set of numerical experiments and also on real
applications