Function Description:
This function returns a 3x3 ROTATION MATRIX (R). It can accept angle inputs in both "degree" and "radian" for any of the three axes (x,y,z).
AUTHOR: Sugato Ray | Created on: 11-AUG-2017 | ray.sugato[at]gmail.com
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
PLEASE ACKNOWLEDGE THE AUTHOR IF YOU USE THIS CODE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
INPUT:
rotationAxis = 'x' or, 'y' or, 'z'. ; Default: 'z'
Angle = angle of rotation (Numeric input only) ; Default: 0
AngleUnits = 'D' for Degrees or, 'R' for Radians ; Default: 'D'
DebugFlag = 1 (true) or, 0 (false) ; Default: 0
Note: DebugFlag = 1 enables printing Rotation Matrix (R) on Console.
OUTPUT:
R = Rotation matrix about the axis of rotation
EXAMPLE:
R = EulerRotationMatrix(rotationAxis, Angle, AngleUnits, DebugFlag);
R = EulerRotationMatrix('x', 60, 'D'); % Rotate by 60 degs about x-axis
R = EulerRotationMatrix('z', pi/3, 'R'); % Rotate by pi/3 rads about z-axis
Alternative approach: Define a function handle
RotZ = @(ang) EulerRotationMatrix('z',ang,'D',1);
RotZ(60);
RotY = @(ang) EulerRotationMatrix('y',ang,'D',1);
RotY(60);
RotX = @(ang) EulerRotationMatrix('x',ang,'D',1);
RotX(60);
Test the value of RotX(60) against the following result:
Rx = [1,0,0; 0, cosd(60), -sind(60); 0, sind(60), cosd(60)]
引用格式
Sugato (2024). EulerRotationMatrix(RotationAxis, Angle, AngleUnits, DebugFlag) (https://www.mathworks.com/matlabcentral/fileexchange/64087-eulerrotationmatrix-rotationaxis-angle-angleunits-debugflag), MATLAB Central File Exchange. 检索时间: .
MATLAB 版本兼容性
平台兼容性
Windows macOS Linux类别
- Radar > Phased Array System Toolbox > Waveform Design and Signal Synthesis > Motion Modeling and Coordinate Systems >
标签
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!