Deriving rotation angle from the eigenvectors
17 次查看(过去 30 天)
显示 更早的评论
For an ellipsoid, how can I get the rotation angle from the eigenvectors?
3 个评论
Qingda Hu
2022-3-15
Probably too late but I was trying to use the same ellipsoid_fit function
If you linearize x,y,z and just multiple it by the evecs you get what you want
[center, radii, evecs, pars ] = ellipsoid_fit_new(... );
[X,Y,Z] = ellipsoid(0,0,0,radii(1),radii(2),radii(3));
Xlin = X(:);
Ylin = Y(:);
Zlin = Z(:);
rotatedXYZ = [Xlin,Ylin,Zlin]*evecs';
X = reshape( rotatedXYZ(:,1),size(X));
Y = reshape( rotatedXYZ(:,2),size(X));
Z = reshape( rotatedXYZ(:,3),size(X));
surf(X,Y,Z);
(you can translate it as well)
Hopefully this is useful for someone.
回答(1 个)
Matt J
2022-3-15
编辑:Matt J
2022-3-15
If you download ellipsoidalFit() to do the fitting, the yaw-pitch-roll angles are avaialble directly from the object,
>> load data
>> fitobj=ellipsoidalFit(xyz)
fitobj =
ellipsoidalFit with properties:
center: [5.0483 2.0378 7.0195]
a: 20.0700
b: 10.0469
c: 4.9622
yaw: 39.6951
pitch: -29.7995
roll: 50.4333
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Surface and Mesh Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!