Logical operators not working inside while loop

1 vue (au cours des 30 derniers jours)
Niladri
Niladri le 29 Jan 2013
I have wrote conditions inside while loop using logical operators.
my program is
p=12;
while (p~=1) | (p~=2)
imshow(image.jpg);
end
but an infinite loop is running
I am unable to find the bug in this. Please help.

Réponse acceptée

Sean de Wolski
Sean de Wolski le 29 Jan 2013
Well you never change p so it is always 12!
x = 10;
while x~=1
x = x-1;
disp(x)
end
Alternatively you can use a for-loop:
for ii = 10:-1:1
disp(ii);
end

Plus de réponses (2)

Jan
Jan le 29 Jan 2013
Yes, of course this is in infinite loop: The value of p does not change inside the loop.

Niladri
Niladri le 31 Jan 2013
Thank you Sean de Wolski & Jan Simon.
Now I have wrote a program which is actually required for my project.
I am taking an analog output (as trigger) from DAC. My codes will start working only when matlab receives trigger from DAC.
Codes are:
p=0;
while (p~=128|p~=192) %2 types of output released by DAC%
p=fread(s,1);
if (p==128)
imshow('x.jpg'); pause(1); imshow('z.jpg'); pause(2);
elseif (p==192
imshow('y.jpg'); pause(1); imshow('z.jpg'); pause(2);
end
end
According to the logic used in the previous program this also should run infinite times and that I need. But it is terminating after some time automatically. Please help.

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by