![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/586036/image.jpeg)
help debugging 3-D plot code
1 回表示 (過去 30 日間)
古いコメントを表示
Brendan Clark
2021 年 4 月 16 日
コメント済み: Bjorn Gustavsson
2021 年 4 月 18 日
I'm trying to figure out why this ellipsoid plot isn't working the way it's supposed to.
It seems that the grid direction may be wrong, but every way that I've tried to change it changes the plot in other undesirable ways as well.
I'm not allowed to use the ellipsoid function, I have to use meshgrid, its very close to correct, but isn't.
The code thus far is.
clear variables
clc
[phi,theta] = meshgrid(linspace(0,2*pi,20),(linspace(0,pi,20)));
figure(1)
a=1;
b=.5;
x=a*cos(phi).*cos(theta);
y=b*cos(phi).*sin(theta);
z=b*sin(phi);
surf(x,y,z);
hold on
AZ=-13;
EL=28;
view(AZ,EL)
xlabel('x')
ylabel('y')
zlabel('z')
title('Ellipsoid')
set(gca, 'XTick',[-0.8,-0.6,-0.4,-0.2,0,0.2,0.4,0.6,0.8])
set(gca, 'YTick',[-0.4,-0.2,0,0.2,0.4])
when run the code produces
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/586021/image.jpeg)
what I need is
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/586026/image.jpeg)
3 件のコメント
採用された回答
Bjorn Gustavsson
2021 年 4 月 17 日
You have to get your equations for x, y and z right:
x = a*cos(phi).*sin(theta);
y = b*sin(phi).*sin(theta);
z = b*cos(theta);
surf(x,y,z);
HTH
2 件のコメント
Bjorn Gustavsson
2021 年 4 月 18 日
When I have these sorts of typo-problems I find that printing the code out on paper and annotate it by hand with circling in, crossing over and connecting variables and statements to be helpful. If you see what you think that you've written and not what you've actually written then that helps - sometimes.
その他の回答 (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!