
How do I rotate a radial vector around a unit circle and plot each position?
8 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
MathWorks Support Team
el 23 de Mzo. de 2023
Respondida: MathWorks Support Team
el 5 de Abr. de 2023
I have a vector consisting of m points, or three (x, y)-coordinate pairs. For instance, the x-coordinate are all zero, so the vector points in the y-direction. I want to rotate this vector n times around the unit circle and store each result in a new matrix of size (mxn)x2 matrix. This is what I have so far, but I have hard-coded m = 3:
clear
clc
clf
n=10;
AngRot=-360/n;
Am=[cosd(AngRot) sind(AngRot);...
-sind(AngRot) cosd(AngRot)];%rotation matrix
x1=[0 0 0]';
y1=[1 1.1 1.2]';
xy1=[x1 y1]
xy2=xy1*Am
x2=xy2(:,1);
y2=xy2(:,2);
xy3=xy2*Am
x3=xy3(:,1);
y3=xy3(:,2);
ang=linspace(0,360,100);
xc=cosd(ang);
yc=sind(ang);
plot(x1,y1,x2,y2,x3, y3,xc,yc)
grid on
axis equal;
Here is what it generates. I'm not sure how to automate it to fill in all the rotations or save the results.

Respuesta aceptada
MathWorks Support Team
el 23 de Mzo. de 2023
Below is a full demo of how to do so in MATLAB, where m is the size of the vector and n is the number of rotations. The rotated vectors are saved in the matrix XY.
%% This is a demo to rotate your mx2 vector n times and generate a (mxn)x2
% matrix full of these resulting data points.
clear
clc
close all
%% Start with your values for m and n and calculate rotation matrix.
m = 6;
n = 50;
theta = 360/n;
R = [cosd(theta) -sind(theta);
sind(theta) cosd(theta)]';
%% Allocate space for the end matrix.
XY = zeros(m*n, 2);
%% Generate the first vector.
x = zeros(m, 1);
y = linspace(1, 1.5, m)';
xy = [x y];
XY(1:m, :) = xy;
%% Loop through and calculate rotated matrcies.
for i = 1+m:m:m*n
xy = xy*R;
XY(i:i+m-1, :) = xy;
end
%% Plot the results.
hold on
grid on
axis equal
ang = linspace(0,360,100);
xc = cosd(ang);
yc = sind(ang);
plot(xc, yc)
for k = 1:m:m*n
x = XY(k:k+m-1, 1);
y = XY(k:k+m-1, 2);
plot(x, y);
end
The result is the following:

0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Surface and Mesh Plots en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!