作业帮 > 综合 > 作业

关于matlab的函数eigs的使用出错,求(D-W)*Y=r*D*Y的第二小特征向量.

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/10/10 19:17:52
关于matlab的函数eigs的使用出错,求(D-W)*Y=r*D*Y的第二小特征向量.
代码如下:
im=imread('1.bmp');
Im=rgb2gray(im);
[nRow,nCol] = size(Im);
N=nRow*nCol;
I=reshape(Im,N,1);
I=double(I);
%用于还原图像
Image=I;
L=nRow;C=nCol;
%参数
SI=0.2;SX=4;r=10;
PV=0.06;
W = NcutComputeW(I,N,nRow,nCol,SI,SX,r);%W是一个N X N的对称半正定矩阵
Ncut=cell(2,4);
Seg=(1:N)';
N =length(W);
d = sum(W,2);
D = spdiags(d,0,N,N);
%求(D-W)*Y=r*D*Y,其中D是一个N x N的对角矩阵,Y是一N x 1的列向量,
%W是一个N X N的对称半正定矩阵,
[Y,U]= eigs(D-W,D,2,'sm');%约束条件为Y'*D*1=0;
%其目的是求(D-W)*Y=r*D*Y的第二小特征向量;
Y1 = Y(:,2);
————————————————————————————————
运行时候当图像为4 x5时不会出错,当图像为20 x 30时错误提示为:
Error using ==> eigs
Error with ARPACK routine dsaupd:info = -9999
Error in ==> testImage at 21
[Y,U]= eigs(D-W,D,2,'sm');
能否有高人帮忙看看是怎么回事啊,怎么解决这个问题,
关于matlab的函数eigs的使用出错,求(D-W)*Y=r*D*Y的第二小特征向量.
我也遇到这样的错误.
另外,原来NcutComputeW.m 文件中,DF = FJ - FI 这一行有个错误,致使得出的W不是对称的.