Logical operators not working inside while loop

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.

 Akzeptierte Antwort

Sean de Wolski
Sean de Wolski am 29 Jan. 2013

2 Stimmen

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

Weitere Antworten (2)

Jan
Jan am 29 Jan. 2013

2 Stimmen

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

0 Stimmen

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.

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by