problem with if statement
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentario
sco1
el 4 de Nov. de 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.
Respuesta aceptada
Wayne King
el 4 de Nov. de 2011
if (0<ang && ang <1.5708)
quad=1;
elseif (1.5708<ang && ang<3.1416)
quad=2;
elseif (-1.5708<ang && ang<0)
quad=3;
else
quad=4;
end
You can't do 0<ang<pi/2
Más respuestas (2)
Fangjun Jiang
el 4 de Nov. de 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
sco1
el 4 de Nov. de 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!
Ver también
Categorías
Más información sobre Annotations en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!