multiplying matrices with an array in order to create a rotation matrix
Show older comments
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 Comments
KSSV
on 23 May 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
on 23 May 2017
Answers (1)
Andrei Bobrov
on 23 May 2017
Edited: Andrei Bobrov
on 23 May 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
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!