Hi,

when calculating the component maps (from COV_signal * eigenvectors / (eigenvectors’ * COV_signal * eigenvectors), I often receive this warning from Matlab:

# Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = [some value]

Has anybody had the same issue? And how can one handle it (if it is possible at all?)

My take on it is that it probably relates to very small values close to zero in the eigenvector matrix.

For calculating the eigenvector matrix, I tried to use a regularization of the noise covariance matrix COV_noise. I.e., instead of

[eigenvecs, eigenvals] = eig(COV_signal, COV_noise);

I tried with

[eigenvecs, eigenvals] = eig(COV_signal, COV_noise+lambda*eye(size(COV_noise)));

where lambda is a somewhat arbitrary value like

lambda = 0.1 * trace(COV_noise)/size(COV_noise,1);

To make the long story short: It does not seem to help.

Any insights would be much appreciated

All the best

Norman