Programming: keep theta between specific values

3 visualizaciones (últimos 30 días)
Babak
Babak el 26 de Ag. de 2014
Comentada: Star Strider el 26 de Ag. de 2014
Hi every one,
I have a problem in programming. I have theta which start from 0 and goes to unspecified value. I want to reset theta if it reached to 2pi and keep it always between [0,2pi]. I wrote a code but it is not true for all situation(Ex after 4pi). My code is:
if theta>2*pi
theta=theta-2*pi;
end

Respuestas (2)

Star Strider
Star Strider el 26 de Ag. de 2014
Editada: Star Strider el 26 de Ag. de 2014
You can do that with the rem function:
x = linspace(0,10*pi);
theta = rem(x, 2*pi);
figure(1)
plot(x/pi,theta/pi)
grid
xlabel('Angle (x \pi)')
ylabel('Angle (x \pi)')
They are plotted as multiples of pi for convenience in visualising the result.
  2 comentarios
Babak
Babak el 26 de Ag. de 2014
I think my explanation was not complete. I should say I get a value of theta each time not a vector. theta is a [1*1] matrix and it will increase.
Star Strider
Star Strider el 26 de Ag. de 2014
A (1x1) matrix is a scalar.
My code does exactly what you illustrated. It produces vectors of values from (0,2*pi) from your linearly increasing vector that goes from zero to at least 6*pi.

Iniciar sesión para comentar.


Babak
Babak el 26 de Ag. de 2014
I should write something like this: ( there should be an easier way!)
if 0<theta<2*pi
theta=theta-2pi;
end
if 2*pi<theta<4*pi
theta=theta-4pi;
end
if 4*pi<theta<6*pi
theta=theta-6pi;
end
  1 comentario
Star Strider
Star Strider el 26 de Ag. de 2014
Run your code and see if it produces the result you illustrated.
Mine does.

Iniciar sesión para comentar.

Categorías

Más información sobre Operators and Elementary Operations en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by