2016-02-24 10 views
1

Как создать матрицу вращения 2x2, которая вращается на 45 градусов? Я исследовал, но все, что я нашел, это то, что я использовал в своем коде, который дает матрицу 3x3!2x2 матрица вращения (45 градусов)

clear; 
clc; 
[email protected](t) sqrt(t).*cos(4.*t); 
num_of_samples = 20 ; 
figure; 
fplot(y, [0,2*pi]) 
hold on 

tSample = linspace (0, 2*pi, num_of_samples); 
ySample = zeros(1,num_of_samples); 

for i=1:num_of_samples 
    temp = tSample(i); 
    temp_2 = sqrt(temp); 
    ySample(i) = temp_2*cos(4*temp); 
end 


mXY=([tSample;ySample]); 
fplot(y,[0,2*pi]); 
hold on; 
    plot(mXY(1,:),mXY(2,:),'Xk'); 
    hold on; 
    plot(mXY(1:10:end),mXY(2:10:end),'Xr'); 


%rotation matrix 
R=rotx(45); 

mXYrot=mXY.*R; 
+0

Действительно? 'R2d = @ (deg) [cosd (deg) -sind (deg); sind (deg) cosd (deg)];' – horchler

ответ

2

2D-вращение по существу совпадает с поворотом в трехмерном пространстве вокруг оси z. Таким образом, вы можете просто использовать rotz создать матрицу 3х3, но использовать только левый верхний 2х2 суб матрицу этого:

R = rotz(45); 
R = R(1:2,1:2); 

или вручную:

a=1/2*sqrt(2); 
R=[ a -a; a a ]; 

Примечание: Если вы не имеют необходимый набор инструментов для rotz, записывая матрицу двумерного вращения самостоятельно для произвольного угла alphais pretty simple также:

R=[cosd(alpha) -sind(alpha); ... 
    sind(alpha) cosd(alpha)]; 
+1

FYI, 'rotz' - это функция, панель инструментов Phased Array System, специализированная панель инструментов, (даже если OP появляется). – horchler

+0

@horchler: Спасибо, я не обращал на это внимания, OP, вероятно, студент. – MikeMB

Смежные вопросы