I want to rotate a matrix of points, i.e. column vectors. However, I want to rotate each vector in the matrix by a different angle. For example:
pointMatrix = [v1,v2,v3,v4]; %vi is a column vector
rotateAngles = [10,20,30,40]; %degrees
Say I want to rotate these points around the z-axis. Therefore, for one point I could do something like the following:
Rz = [[cos(rotateAngles(1)) -sin(rotateAngles(1)) 0];... [sin(rotateAngles(1)) cos(rotateAngles(1)) 0];... [ 0 0 1]];v1Rotated = Rz*v1;
Is there a non-loop way to rotate all the vectors in my pointMatrix by each one's unique rotation angle? Something like this…
allRotatedPoints = superRotationMatrix*pointMatrix;
where the superRotationMatrix "magically" rotates each column by the corresponding angle.
Thanks!
Best Answer