Date: Feb 27, 2013 11:47 AM
Author: Steven Lord
Subject: Re: Alternative solution for NAN
"Carl S." <firstname.lastname@example.org> wrote in message
> "Torsten" wrote in message <email@example.com>...
>> The matrix N you get after the while loop is a scalar multiple of the
>> identity matrix and in general has nothing in common with your original
>> matrix N. You will have to find out why eig produces NaN values for your
>> original matrix N. Are you sure all elements of N are finite ? Best
> Yes, Torsten, they are finite
> My goal is to fit means(mu) and standard deviations(N) to Gaussian shape.
> The codes that I wrote above are from the function ;
> function res=MultivariateGaussianPDF(x,mu,N)
> while(det(N) == 0)
1) Don't use DET to test for singularity. This matrix:
A = 1e-10*eye(400);
has determinant 0 (due to underflow) but it's a scaled identity matrix,
which is about as well-behaved as you can get. If you _must_ test for
singularity, check with COND or RCOND.
2) Don't test a floating-point number for exact, bit-for-bit equality unless
you need exact, bit-for-bit equality. Compare with a tolerance instead.
> [U,D]=eig(N); % <=causes NAN problem :((
Show the group a SMALL matrix N with which you can reproduce this behavior.
3) If you have Statistics Toolbox, do one of these functions do what you
If not, please explain more _in words not code or equations_ specifically
what you mean/are trying to do when you say you want to fit means and
standard deviations to a Gaussian shape.
To contact Technical Support use the Contact Us link on