multiplying matrices with an array in order to create a rotation matrix
Afficher commentaires plus anciens
Hi!
We are looking for a way to create a rotation matrix within a for loop.
matrixRy=(1-cos(hoeky))*matrixKy^2+sin(hoeky)*matrixKy+matrixI
The sizes of the variables are: hoeky: 1x1827 double matrixKy: 3x3 matrixI: 3x3
We would like to create 1827 different matrixRy with a size of 3x3. Is this possible?
Thanks in advance!
Kind regards
2 commentaires
KSSV
le 23 Mai 2017
You want to generate those many number of Rotation matrices? Rotate the given data by certain angle and get new data points?
Lotte Stam
le 23 Mai 2017
Réponses (1)
Andrei Bobrov
le 23 Mai 2017
Modifié(e) : Andrei Bobrov
le 23 Mai 2017
Ky = matrixKy^2;
h = reshape(hoeky,1,1,[]);
matrixRy = (1-cos(h)).*Ky + sin(h).*matrixKy + matrixI; % MATLAB >= R2016b
matrixRy = bsxfun(@plus,bsxfun(@times,(1-cos(h)),Ky) +...
bsxfun(@times,sin(h),matrixKy), matrixI); % MATLAB <= R2016a
Catégories
En savoir plus sur Logical dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!