Logical operators not working inside while loop

조회 수: 1 (최근 30일)
Niladri
Niladri 2013년 1월 29일
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.

채택된 답변

Sean de Wolski
Sean de Wolski 2013년 1월 29일
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

추가 답변 (2개)

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

Niladri
Niladri 2013년 1월 31일
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.

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by