Rotating a Vector

166 Ansichten (letzte 30 Tage)
A
A am 8 Jul. 2011
Kommentiert: James Tursa am 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.
Thank you in advance!
Amina

Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 8 Jul. 2011
complex
vR = v*[1;1i]*exp(-1i*theta*pi/180)
  2 Kommentare
A
A am 20 Jul. 2011
Very nice, thanks!
The only problem that I am having is using vR as it is a 1x1 element and therefore not in usual vector form. Is there a way that I can mash this into that form?
James Tursa
James Tursa am 16 Apr. 2020
real(vR) are the x components of the vectors, and imag(vR) are the y components of the vectors.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (3)

Sean de Wolski
Sean de Wolski am 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))
  1 Kommentar
A
A am 20 Jul. 2011
This works great! Thank you :)

Melden Sie sich an, um zu kommentieren.


Sayyed Ahmad Khadem
Sayyed Ahmad Khadem am 26 Dez. 2018
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
Untitled.png
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?
Thanks in advance,
  1 Kommentar
Adam Danz
Adam Danz am 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)

Melden Sie sich an, um zu kommentieren.


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

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Vector Fields finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by