简介
这些天在使用LLE降维的时候,遇到一个错误:
错误使用 eigs (line 252)
ARPACK 例程 dnaupd 出错:信息 = -9999
网上搜了好久都没有合适解决办法,今天终于被我琢磨出来了,嘻嘻!话不多说,进入正题。
正文
遇到的错误如下:
错误使用 eigs (line 252)
ARPACK 例程 dnaupd 出错:信息 = -9999
出错 lle (line 71)
[Y,eigenvals] = eigs(M,d+1,0,options);
其实就是LLE中eigs使用那边出了问题。
开始解决:
首先我换成了eig
[Y,c1] = eig(double(M+1e-6));
又报错
错误使用 eig
EIG 的输入不能包含 NaN 或 Inf。
出错 lle (line 72)
[Y,c1] = eig(double(M+1e-6));
我查看了,我的输入M的确有NaN,那就删除吧
M1=isinf(M);
[inf_r inf_c]=find(M1==1);
M1(inf_r,:)=[];
M1 = isnan(M1);
[nanx nany]=find(M1==1);
M1(nanx,:)=[];
[Y,c1] = eig(double(M1+1e-6));
就解决啦!
总结
上面记录只是我的一小部分尝试过程,再往前有些记不得了,以后还是要经常记录一下的。
回正题,其实在寻找解决办法的过程中,有看到和我同样经历的同学选择了更换降维方法,也能得到相同的结果,但是想着以后总会有绕不过去的时候,不如趁着现在遇到了,并且还有精力与热情去解决它的时候,把它克服掉!