Ellipsoid plot_ wireframe view
1 次查看(过去 30 天)
显示 更早的评论
Hello, I have plotted ellipsoids using 'surf' command at some fixed points. It looks like solid. But i want to see three axis of it as shown in figure attached. Please suggest.
采纳的回答
Bruno Luong
2019-8-26
编辑:Bruno Luong
2019-8-26
[Q,~] = qr(randn(3));
h = rand(3,1);
h1 = h(1);
h2 = h(2);
h3 = h(3);
% If your principal axis are (3x1) P1, P2, P3 and half length are (scalars) h1, h2, h3
% Q = [P1(:), P2(:), P3(:)];
Q = Q .* ([h1, h2, h3]./sqrt(sum(Q.^2,1)));
n = 21;
[x,y,z]=sphere(n);
xyz = Q*[x(:) y(:) z(:)]';
x = reshape(xyz(1,:),[n n]+1);
y = reshape(xyz(2,:),[n n]+1);
z = reshape(xyz(3,:),[n n]+1);
close all
hold on
surf(x,y,z,'EdgeColor',0.6+[0 0 0],'FaceColor','none');
for k=1:3
plot3([0 Q(1,k)],[0 Q(2,k)],[0 Q(3,k)],'r','LineWidth',2);
end
axis equal
This is a slight modification of my answer in this thread
3 个评论
Bruno Luong
2019-8-26
Error occuring or not depends on your MATLAB version, this command is correct for R2016b and later.
If you use previous you should replace with
Q = bsxfun(@times, Q, ([h1, h2, h3]./sqrt(sum(Q.^2,1))))
更多回答(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!