Date: Feb 27, 2013 7:17 AM
Author: Tony Kittler
Subject: Re: Alternative solution for NAN

"Carl  S." wrote in message <kgkpep$h9u$1@newscl01ah.mathworks.com>...
> "Torsten" wrote in message <kgko7b$e4d$1@newscl01ah.mathworks.com>...
> > "Carl S." wrote in message <kgkmon$aeo$1@newscl01ah.mathworks.com>...
> > > "Torsten" wrote in message <kgklbh$6ph$1@newscl01ah.mathworks.com>...
> > > > "Carl S." wrote in message <kgki2g$rie$1@newscl01ah.mathworks.com>...
> > > > > The following code gives NAN (Not a Number) values
> > > > > [U,D]=eig(N);
> > > > >
> > > > > To solve this problem, I wrote that
> > > > > while(det(N) == 0)
> > > > > N=(1e-10.*randi(1,size(N)))*eye(size(N));
> > > > > end
> > > > >
> > > > > But, the loop does not stop

> > > >
> > > > Your matrix N within the loop always has determinant (1e-10)^(size(N))
> > > > which may become very small if N is large.
> > > >
> > > > :( Are there any alternative solution instead of this loop to solve the NAN problem ?
> > > >
> > > > Depends on the original matrix N.
> > > >
> > > > Best wishes
> > > > Torsten.

> > >
> > > Dear Torsten,
> > > The matrix N has standard deviation values of grayscale images. So, it changes for each image. How to solve the NAN problem in this case ?

> >

I have tried this,
u=1e-10;
while(det(N) == 0)
N=u.*eye(size(N));
u=u*100;
end

Now, it works without giving NAN value. But, I am not sure that this algorithm correct results. Do you think that this is meaningful or I can get unexpected results ? Any suggestions ?