I'm newer using matlab I wrote this code,but i have a error Plz help me,thanks
A=imread('21_training.tif');
B=A(:,:,2);
%opening disk = 3
se=strel('disk',3);
C=imopen(B,se);
%co-occurrence matrix
glcm=graycomatrix(C,'NumLevel',256);
p=glcm/sum(glcm(:));
%mean pi,pj and standard deviation pi,pj (mean pi=mean pj)
for i=1:256
for j=1:256
m=m+double(i).*p(i,j);
end
end
error: Undefined function or variable 'm'

 채택된 답변

ES
ES 2013년 11월 8일

0 개 추천

It could help if you could format your code using the {}Code button in the question edit window. the Problem is m is not defined. You have done
m=m+(something)
in the first iteration (i=1 and j=1), matlab tries to add value of double(i).*p(i,j) to m. but it does not know what m is.
Initialize m to something (say 0) and try.

추가 답변 (2개)

Azzi Abdelmalek
Azzi Abdelmalek 2013년 11월 8일
편집: Azzi Abdelmalek 2013년 11월 8일

0 개 추천

The for loop
m=0
for i=1:256
for j=1:256
m=m+double(i).*p(i,j);
end
end
can be replaced by
m=sum(sum(repmat((1:256)',1,256).*p))
%or
m=sum(sum(bsxfun(@(x,y) x.*y,p,(1:256)')));
Andrei Bobrov
Andrei Bobrov 2013년 11월 8일

0 개 추천

m = sum((1:256)*p)

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

질문:

Huy
2013년 11월 8일

댓글:

Huy
2013년 11월 11일

Community Treasure Hunt

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

Start Hunting!

Translated by