How do I normalise a Matrix that is close to Singular or badly scale
Show older comments
I have an extracted features to be used for HMM training.
However, I am having an error Warning: Matrix is close to singular or badly scales. Results may be inaccurate. RCOND
I want a situation whereby i can 'normalize' or avoid this entirely in order to proceed to the next phase of the code.
1 Comment
Matt J
on 10 Jan 2022
The appropriate steps depend a lot on how the matrix got that way.
Answers (1)
John D'Errico
on 24 Oct 2022
0 votes
You CAN'T do it. Or, sometimes, you can. And it all depends on what makes the matrix singular, or badly scaled. How was the matrix created? Where did it come from?
For example, I can give you a matrix that can never be normalized in any way, to remove a singularity. (Not difficult to create.) And I can give you others that have trivially removed problem. In fact, I can think of several ways that might arise. But can I give you an automatic scheme to always normalize a matrix so it is no longer numerically singular? NO WAY.
What you need to know is to understand WHY is the matrix numerically singular. Then you may be able to deal with the problem. Until you do, that you are faced with the issue that you can't know how to solve the problem.
Finally, there are sometimes schemes to resolve the issue in a way that avoids the singularity, thus if a pseudo-inverse might be appropriate. Sadly, much of the time that too has issues, because it may be inappropriate for specific problems. Again, unless you understand what is happening, and WHY it is happening, you cannot solve the problem.
Categories
Find more on Pulse and Transition Metrics in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!