problem with if statement
Mostra commenti meno recenti
Hi Guys,
This is a very basic question. I want to figure out which quadrant a point lies in from the value I get from atan2. I dont know if there is a simpler way but I wrote a code containing a series of if statements and it isnt executing right. Can anyone tell me what is wrong in it. Your help is greatly appreciated.
if 0<ang<1.5708
quad=1;
end
if 1.5708<ang<3.1416
quad=2;
end
if -1.5708<ang<0
quad=3;
end
if -3.1416<ang<-1.5708
quad=4;
end
Thanks, NS
1 Commento
sco1
il 4 Nov 2011
I'll look at it in a second, but I would suggest using pi() instead of discrete numbers in order to avoid errors where your point lies on one of the axes.
Risposta accettata
Più risposte (2)
Fangjun Jiang
il 4 Nov 2011
What is wrong is that "0<ang<1.5708" is not a valid statement according MATLAB M-language syntax. You will need to use
and(0<ang, ang<1.5708)
Or
0<ang && ang<1.5708
1 Commento
NS
il 4 Nov 2011
sco1
il 4 Nov 2011
I don't think MATLAB will handle the logic statements when put that way, try using an and statement instead: I would also suggest using elseif just because it makes things look neater.
For example:
if ang > a && ang < b
quad = x
elseif ang > b && ang < c
quad = y
etc.
edit: I'm a slow typer!
1 Commento
NS
il 4 Nov 2011
Categorie
Scopri di più su Entering Commands in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!