my code is getting skipped

8 visualizaciones (últimos 30 días)
nida
nida el 7 de Abr. de 2014
Comentada: nida el 8 de Abr. de 2014
my m file runs properly halfway but it skips(does not display output image)for some codes
it does not show any error.this is my code it does not run altogether.if i remove 3rd part 2nd executes,or else 2nd does not.1 does sometimes i want all of them to run(this is half code of my m-file)
1st:
g=rgb2gray(Image)
figure,surf(double(g),'edgecolor','none')
%axis([0 columns 0 rows min(double(g(:))) max(double(g(:)))])
colormap hot
2: im=(Image)
mean(im(:))
if mean(im(:))>=10 & mean(im(:))<=47
bargred0
end
if mean(im(:))>=47 & mean(im(:))<=50
bargred0
end
3: a=mean(im(:))
r=.5
t=1:1:10
x1=100*(1+r).^t
x2=a*(1+r).^t
plot(x1)
hold on
plot(x2,'--')
xlabel('Days')
ylabel('Growth Rate')
legend('General','Acquired')
  4 comentarios
nida
nida el 7 de Abr. de 2014
nida
nida el 8 de Abr. de 2014
ok,i set a breakpoint , and using steps went through the code, everything worked but,when a first figure displays it gets replaced by next figure,thereby showing the first and last figures only.

Iniciar sesión para comentar.

Respuestas (2)

Image Analyst
Image Analyst el 7 de Abr. de 2014
Editada: Image Analyst el 7 de Abr. de 2014
After you view this http://blogs.mathworks.com/videos/2012/07/03/debugging-in-matlab/ and use what you learn, you will know why it's skipping past some lines of code. By the way, you need to change these lines to:
meanGL = mean2(im);
if meanGL >= 10 && meanGL <= 50
bargred0
end
Use mean2() instead of mean(), call it only once, use && instead of &, and combine two ifs into one.
  17 comentarios
Image Analyst
Image Analyst el 7 de Abr. de 2014
If you want to classify what kind of dirt it is and you say that a gray level of 80 means it's black loam, then what happens when you come tomorrow when it's cloudy and the gray level is only 50? Or you come again next month and it's bright and sunny and the gray level is 150? Are you going to call it beach sand instead of black loam because it's brighter? It's the same dirt - you should not classify it as something different. It just changed because of the exposure or lighting, but it's the same dirt.
nida
nida el 8 de Abr. de 2014
ok,but what about my problem

Iniciar sesión para comentar.


Sagar Damle
Sagar Damle el 7 de Abr. de 2014
if mean(im(:))>=10 & mean(im(:))<=47 :- Second 'if'
if mean(im(:))>=47 & mean(im(:))<=50 :- Third 'if'
I think,you are getting problem when mean = 47. This is because when mean = 47,second 'if' will be executed and third will be ignored.You can try this -
if mean(im(:))>=10 & mean(im(:))<=47 :- Second 'if'
if mean(im(:))>47 & mean(im(:))<=50 :- Third 'if'

Categorías

Más información sobre Programming en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by