what will be the solution for this error

조회 수: 5 (최근 30일)
Poonam
Poonam 2014년 9월 12일
편집: Pierre Benoit 2014년 9월 12일
function idx=nomc(meas)
W=SimilarMatrix(meas,1);
D=diag(sum(W));
L=D-W;
Lsym=(D^(-1/2))*L*(D^(-1/2));
[ev ed]=eig(Lsym);
d=diag(ed); %#ok<NASGU>
V=ev(:,1:3);
for i=1:250
for j=1:7
U(i,j)=V(i,j)/sqrt(sum(V(i,:).^2)); %#ok<AGROW>
end
end
idx=kmeans(U,3);
figure;plot(idx);
result=[length(find(idx==1)),length(find(idx==2)),length(find(idx==3))];
getting error
??? Attempted to access V(1,4); index out of bounds because
size(V)=[143,3].
Error in ==> nomc at 11
U(i,j)=V(i,j)/sqrt(sum(V(i,:).^2)); %#ok<AGROW>
Error in ==> Normalizemeanseg at 120
f=nomc(y);
  댓글 수: 2
Rushikesh Tade
Rushikesh Tade 2014년 9월 12일
can you provide "meas" variable in mat format or provide dimensions?
Poonam
Poonam 2014년 9월 12일
meas is <143x256x3 double>

댓글을 달려면 로그인하십시오.

답변 (1개)

Titus Edelhofer
Titus Edelhofer 2014년 9월 12일
Hi,
you write
V = ev(:, 1:3);
so V has three columns. But your loop on j is
for j=1:7
That doesn't match ...
Titus
  댓글 수: 4
Image Analyst
Image Analyst 2014년 9월 12일
Poonam, I think you're mistaken. If the error says
Attempted to access V(1,4);
and your code is
for j=1:3
Then there is no way the second index of V could be 4 in this line
U(i,j)=V(i,j).....
Pierre Benoit
Pierre Benoit 2014년 9월 12일
편집: Pierre Benoit 2014년 9월 12일
Well, my guess was that this is no longer j that was causing a problem but i since the boundary of this loop is also quite arbitrary. And, maybe the author forgot to tell us or didn't see that the error changed a little.
But at this point, we can only guess given how little information we have.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

제품

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by