Clear Filters
Clear Filters

How do I normalise a Matrix that is close to Singular or badly scale

7 views (last 30 days)
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.

Answers (1)

John D'Errico
John D'Errico on 24 Oct 2022
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.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!