Yes, but the solution will not be unique. Also you should rather put translation at the end (the order of the rest doesn't matter)
For any given square matrix A
there exists infinitely many matrices B
and C
so that A = B*C
. Choose any invertible matrix B
(which means that B^-1 exists or det(B) != 0) and now C = B^-1*A
.
So for your solution first decompose MC
into MT
and MS*MR*MSk*I
, choosing MT to be some invertible transposition matrix. Then decompose the rest into MS
and MR*MSk*I
so that MS is arbitrary scaling matrix. And so on...
Now if at the end of the fun I
is an identity matrix (with 1 on diagonal, 0 elsewhere) you're good. If it is not, start over, but choose different matrices ;-)
In fact, using the method above symbolically you can create set of equations that will yield you a parametrized formulas for all of these matrices.
How useful these decompositions would be for you, well - that's another story.
If you type this into Mathematica or Maxima they'll compute this for you in no time.