2x2旋转矩阵(45度)

时间:2016-02-24 23:01:42

标签: matlab

如何创建旋转45度的2x2旋转矩阵? 我研究过,但我发现的只是我在代码中使用的,它提供了3x3矩阵!

clear;
clc;
y=@(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;

1 个答案:

答案 0 :(得分:2)

2D旋转与围绕z轴的3D空间中的旋转基本相同。所以你可以简单地使用rotz创建一个3x3矩阵,但只使用它的左上2x2子矩阵:

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

或手动:

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

注意:如果您没有rotz所需的工具箱,请自行记下2D旋转矩阵,任意角度alpha is pretty simple

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