Borrar filtros
Borrar filtros

Info

La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.

For loop not executing

2 visualizaciones (últimos 30 días)
NAMRATA SINGH
NAMRATA SINGH el 26 de Nov. de 2016
Cerrada: MATLAB Answer Bot el 20 de Ag. de 2021
Hello ,
I am trying to run this for loop and again it stops at section four where it displays letters 'L P E D' but after that it is stuck without any error message.
for i = 1:8
if i == 1
j = 'E';
figure('units','normalized', 'outerposition',[0 0 1 1], 'color', [1 1 1 1])
axis off
text(.45, .6, 'E', 'fontname', 'Times', 'fontsize', 200)
pause
LetterOne = input('What letter did you see on the screen?', 's')
LetterOne = upper(LetterOne)
return_value = strcmp(j,LetterOne)
if return_value == 1,
disp ' Press a key to continue'
else return_value == 0,
disp('Thank you participating in the vision test.')
disp('Your vision is 20/200');
break
end
clf
end
if i == 2
j = 'F P';
figure('units','normalized', 'outerposition',[0 0 1 1], 'color', [1 1 1 1])
axis off
text(.40, .6, 'F P', 'fontname', 'Times', 'fontsize', 100)
pause
LetterTwo = input('What letter did you see on the screen?', 's')
LetterTwo = upper(LetterTwo)
return_value = strcmp(j,LetterTwo)
if return_value == 1,
disp ' Press a key to continue'
else return_value == 0,
disp('Thank you participating in the vision test.')
disp('Your vision is 20/100');
break
end
clf
end
if i == 3
j = 'T O Z';
figure('units','normalized', 'outerposition',[0 0 1 1], 'color', [1 1 1 1])
axis off
text(.45, .6, 'T O Z', 'fontname', 'Times', 'fontsize', 70)
pause
LetterThree = input('What letter did you see on the screen?', 's')
LetterThree = upper(LetterThree)
return_value = strcmp(j,LetterThree)
if return_value == 1,
disp ' Press a key to continue'
else return_value == 0,
disp('Thank you participating in the vision test.')
disp('Your vision is 20/70');
break
end
clf,close
end
if i == 4
j = 'L P E D';
figure('units','normalized', 'outerposition',[0 0 1 1], 'color', [1 1 1 1])
axis off
text(.45, .6, 'L P E D', 'fontname', 'Times', 'fontsize', 50)
pause
LetterFour = input('What letter did you see on the screen?', 's')
LetterFour = upper(LetterFour)
return_value = strcmp(j,LetterFour)
if return_value == 1,
disp ' Press a key to continue'
else return_value == 0,
disp('Thank you participating in the vision test.')
disp('Your vision is 20/50');
break
end
clf, close
end
if i == 5
j = 'P E C F D';
figure('units','normalized', 'outerposition',[0 0 1 1], 'color', [1 1 1 1])
axis off
text(.35, .6, 'P E C F D', 'fontname', 'Times', 'fontsize', 40)
pause
LetterFive = input('What letter did you see on the screen?', 's')
LetterFive = upper(LetterFive)
return_value = strcmp(j,LetterFive)
if return_value == 1,
disp ' Press a key to continue'
else return_value == 0,
disp('Thank you participating in the vision test.')
disp('Your vision is 20/40');
break
end
clf, close all
end
if i == 6
j = 'E D P C F Z';
figure('units','normalized', 'outerposition',[0 0 1 1], 'color', [1 1 1 1])
axis off
text(.40, .6, 'E D P C F Z', 'fontname', 'Times', 'fontsize', 30)
pause
LetterSix = input('What letter did you see on the screen?', 's')
LetterSix = upper(LetterSix)
return_value = strcmp(j,LetterSix)
if return_value == 1,
disp ' Press a key to continue'
else return_value == 0,
disp('Thank you participating in the vision test.')
disp('Your vision is 20/30');
break
end
clf, close
end
if i == 7
j = 'F E L O P Z D';
figure('units','normalized', 'outerposition',[0 0 1 1], 'color', [1 1 1 1])
axis off
text(.45, .55, 'F E L O P Z D', 'fontname', 'Times', 'fontsize', 25)
pause
LetterSeven = input('What letter did you see on the screen?', 's')
LetterSeven = upper(LetterSeven)
return_value = strcmp(j,LetterSeven)
if return_value == 1,
disp ' Press a key to continue'
else return_value == 0,
disp('Thank you participating in the vision test.')
disp('Your vision is 20/25');
break
end
clf, close
end
if i == 8
j = 'D E F P O T E C';
figure('units','normalized', 'outerposition',[0 0 1 1], 'color', [1 1 1 1])
axis off
text(.45, .6, 'D E F P O T E C', 'fontname', 'Times', 'fontsize', 20)
pause
LetterEight = input('What letter did you see on the screen?', 's')
LetterEight = upper(LetterEight)
return_value = strcmp(j,LetterEight)
if return_value == 1,
disp ' Press a key to continue'
else return_value == 0,
disp('Thank you participating in the vision test.')
disp('Your vision is 20/20');
break
end
clf, close
end
end

Respuestas (2)

Image Analyst
Image Analyst el 26 de Nov. de 2016
We'd have to step through this long program with the debugger, just like you. I think you should be able to do it as well as us. If you don't know how to do it, see this nice tutorial: http://blogs.mathworks.com/videos/2012/07/03/debugging-in-matlab/

Walter Roberson
Walter Roberson el 26 de Nov. de 2016
Your "close all" is probably interfering
Instead of using close like that, you should be recording the handle returned from figure() and close() that specific handle.

La pregunta está cerrada.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by