I have a state space system with a Cn matrix
Cn = [1.318e+5 0 0 0;0 0 1.318e+5 0]
and I need to transform it to a C matrix like
C = [1 0 0 0; 0 0 1 0]
The transformation can be made using the following: A = M*An*inv(M), B = M*Bn, C = Cn*inv(M)
I tried to use linsolve(C,Cn) to get my M matrix, which "works" ang gives me
M =
131800 0 0 0 0 0 0 0 0 0 131800 0 0 0 0 0
But this matrix M is non-invertible and the multiplication Cn*inv(M) returns a matrix of NaN values. I know that:
M = 131800 0 0 0 0 1 0 0 0 0 131800 0 0 0 0 1
is invertible and works perfectly for me in this case, but I can't find a way to calculate this M on Matlab.
Can I force the result of a linsolve to be invertible or is there another way to calculate this M so it gives me the one I desire?
Best Answer