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'

 采纳的回答

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 个)

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

类别

帮助中心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