在编写一个单样本识别程序时,出现了eigs的错误,后来发现协方差里面大部分是NaN和Inf,再看xmean里面的值太大了,这时我想到的是:我是不是又忘了减去均值,结果:我其实已经减去了。
那么到底是哪里出现问题了呢:
核心的问题还是出现在xmean的值太大上,它比应该的值大的太多了,达到了10^252,很显然,这里出现了大问题,那么,大这么多——很有可能是指数的问题,然后再重新分析了各个变量名,发现svd 的参数n和子图像的列坐标n重名,在列坐标纵n将达到64!!so,问题解决!!!
当然,我再找bug的过程中,其实没有那么一帆风顺,刚开始找不到问题的核心症结,后来我断点一步步分析并查看变量的值,才发现了上面的问题。
Warning: None of the 30 requested eigenvalues converged.
> In eigs>processEUPDinfo at 1338In eigs at 357
In miffy at 100
Attempted to access xnum(1); index out of bounds because numel(xnum)=0.
Error using eigs/processEUPDinfo (line 1329)
Error with ARPACK routine dneupd:
dnaupd did not find any eigenvalues to sufficient accuracy.
Error in eigs (line 357)
flag = processEUPDinfo(nargout<3