2016-02-24 319 views
1

如何創建旋轉45度的2x2旋轉矩陣? 我研究過,但我發現的是我在我的代碼中使用的,它給出了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軸的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旋轉矩陣爲任意角度alphais pretty simple太:

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

僅供參考,'rotz'是相控陣系統工具箱的一個功能, (即使OP出現)。 – horchler

+0

@horchler:謝謝,我沒有注意到,OP可能是一名學生。 – MikeMB