Rotation Matrix 3D
6 views (last 30 days)
Show older comments
Schiopu Robert
on 25 Jun 2019
Commented: Schiopu Robert
on 25 Jun 2019
Hello ,
I want to try to spin a matrix, but I can not. I have three 240x320 matrices (x, y, z, which are the cartesian points of a stereo camera scan) and have done 4 scans (front, right, left, back) and I want to rotate the Cartesian arrays with 90 degrees, 180 degrees in the back and 270 left to create a 360 degree view. and the rotation matrix, from what I read, has the size of 3x3 (rotate = [cosd (90) -sind (90) 0; sind (90) cosd (90) 0; 0 0 0 1]). I tried the following:
rotz = [cosd (90) -sind (90) 0; sind (90) cosd (90) 0; 0 0 0 1 ];
for i = 1:240
for j = 1:320
[0 0 x11(i,j)] = rotz.*[0 0 x11(i,j)];
end
end
or :
for i = 1:240
for j = 1:320
x11(i,j) = rotz.*x11(i,j);
end
end
Can anyone tell me how can I do that multiplication? Or if there is another option to rotate the matrix?
Thank you have a good day
6 Comments
Accepted Answer
Bjorn Gustavsson
on 25 Jun 2019
Maybe something like this for your coordinates:
r_all = [x(:),y(:),z(:)];
r_rotated = (rotz*r_all')';
Xr = x;
Yr = y;
Zr = z;
Xr(:) = r_rotated(:,1);
Yr(:) = r_rotated(:,2);
Zr(:) = r_rotated(:,3);
HTH
More Answers (0)
See Also
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!