multiplying matrices with an array in order to create a rotation matrix
Mostrar comentarios más antiguos
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 comentarios
KSSV
el 23 de Mayo de 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
el 23 de Mayo de 2017
Respuestas (1)
Andrei Bobrov
el 23 de Mayo de 2017
Editada: Andrei Bobrov
el 23 de Mayo de 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
Categorías
Más información sobre Logical en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!