Path: news.mathworks.com!not-for-mail
From: <HIDDEN>
Newsgroups: comp.soft-sys.matlab
Subject: Re: Alternative solution for NAN
Date: Wed, 27 Feb 2013 12:17:13 +0000 (UTC)
Organization: The MathWorks, Inc.
Lines: 37
Message-ID: <kgktg9$rhc$1@newscl01ah.mathworks.com>
References: <kgki2g$rie$1@newscl01ah.mathworks.com> <kgklbh$6ph$1@newscl01ah.mathworks.com> <kgkmon$aeo$1@newscl01ah.mathworks.com> <kgko7b$e4d$1@newscl01ah.mathworks.com> <kgkpep$h9u$1@newscl01ah.mathworks.com>
Reply-To: <HIDDEN>
NNTP-Posting-Host: www-06-blr.mathworks.com
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: newscl01ah.mathworks.com 1361967433 28204 172.30.248.38 (27 Feb 2013 12:17:13 GMT)
X-Complaints-To: news@mathworks.com
NNTP-Posting-Date: Wed, 27 Feb 2013 12:17:13 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 2671557
Xref: news.mathworks.com comp.soft-sys.matlab:789899

"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 ?