# Rotating a Vector

452 views (last 30 days)
A on 8 Jul 2011
Commented: James Tursa on 16 Apr 2020
Hello! I am wondering if anyone has an elegant way to rotate a vector by a specified degree.
For example, I have a vector that goes from (0,0) to (-1,-12). I want to rotate this vector by 5 degrees, incrementally until it reaches the x-axis.
Obviously this can be done from the math, but I wonder if anyone has a nicer way of doing this.
Amina

Andrei Bobrov on 8 Jul 2011
complex
vR = v*[1;1i]*exp(-1i*theta*pi/180)
##### 2 CommentsShowHide 1 older comment
James Tursa on 16 Apr 2020
real(vR) are the x components of the vectors, and imag(vR) are the y components of the vectors.

Sean de Wolski on 8 Jul 2011
Unless I'm missing something just use the rotation matrix:
v = [-1 -12];
theta = 5;
R = [cosd(theta) -sind(theta); sind(theta) cosd(theta)];
vR = v*R;
quiver(0,0,v(1),v(2))
hold on
quiver(0,0,vR(1),vR(2))
A on 20 Jul 2011
This works great! Thank you :)

Hi all,
I read this blog, and I have similar problem. I would be thankful to kindly give me some clues if you know.
Suppose that we have a vector field in y-x plane, let's consider following example:
Vector Field : Vf = [u, v]
u=x
v=y Now, I need to revolve the given vector field around the center of plot (i.e. [0 0]). Does anyone can provide some nice solution?
Adam Danz on 16 Apr 2020
You can use quiverRotate() from the file exchange.
You can flip the direction of the quiver arrows by using the quiver handle or by flipping the vector component prior to producing the quiver plot.
h = quiver(x,y,u,v);
quiverRotate(h)
% or
[Ur,Vr] = quiverRotate(u,v);
quiver(x,y,Ur,Vr)

wenhao li on 11 Jan 2019
Have you solved this problem? I met this problem, too.
Hi Wenhao,
No one has suggested a viable approach yet ! :-( I am still struggling !