Undefined function or variable 'm'

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'

 Accepted Answer

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.

More Answers (2)

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)')));

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Asked:

Huy
on 8 Nov 2013

Commented:

Huy
on 11 Nov 2013

Community Treasure Hunt

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

Start Hunting!