Remove a "plane" from my 3d plot
显示 更早的评论
When I plot the surface it results into the surface itself but there is something weird in the middle of the surface, I mean it's kind like it is in the xy plane, I do not know how to remove it, here is my code:
clear
figure, hold on
[x,y]=meshgrid(-50:50)
xlabel ("x");
ylabel ("y");
zlabel ("z")
z=sqrt(9*(y.^2)-9*(x.^2))
w=-sqrt(9*(y.^2)-9*(x.^2))
surf(x,y,real(z))
surf(x,y,real(w))
zlim([-150,150])

3 个评论
Ravi Narasimhan
2021-10-14
编辑:Ravi Narasimhan
2021-10-14
If x^2 > y^2, won't the real part of your square root be 0?
davidcu
2021-10-14
Ravi Narasimhan
2021-10-14
编辑:Ravi Narasimhan
2021-10-14
You could perhaps set any value of real(z) or real(w) = 0 to NaN (Not a Number) using the find function. Those items wouldn't display on the surface plot, leaving a space between the top and bottom halves. It would look like
z(find(real(z) == 0)) = NaN;
The find function returns the indices where real(z) == 0 and the z(find(...)) = NaN sets those positions in the z array to NaN
You'd tweak it accordingly for w.
采纳的回答
更多回答(0 个)
类别
在 帮助中心 和 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!
