Rotate 1 by N vector
7 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello, everyone. Is there a way (function) in Matlab to rotate a row vector of N dimensions by a given angle? I've only been able to use the matrix multiplication for 2D and 3D cases.
Thanks!
5 commentaires
Jan
le 10 Mar 2018
I consider this as not complicated:
R = eye(numel(u)) + ...
(v * u.' - u * v.') * sin(a) + ...
(u * u.' + v * v.') * (cos(a) - 1);
Here u and v are two orthogonal unit vectors to describe the n-dimensional hyperplane to rotate in. Remember, that in 3D one vector is sufficient to define a plane to rotate in, but in 4D (and N-D), this is not unique anymore. a is the angle in radians to rotate, and the direction is from u to v.
I publish this in the FileExchange currently.
Réponses (2)
Jan
le 8 Mar 2018
Modifié(e) : Jan
le 10 Mar 2018
Here the axis of rotation u, the cross-product matrix []_x and the tensor cross-product (x) are not limited to 3D, but work for n dimensions also. So you can create the n-D rotation matrix in a straight-forward way and multiply your vector with.
2 commentaires
Voir également
Catégories
En savoir plus sur Gravitation, Cosmology & Astrophysics dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!