我需要ezsurf向我展示图表的顶部,但我无法理解

时间:2015-02-28 00:11:08

标签: matlab graph surface

实际上很有趣。

Wolfram Alpha只显示整个图表的top partezsurf只想显示图表的下半部分,使用meshgrid产生this ugly weirdness,并更改zlim在ezsurf绘制的图表上给了我一个flat plane

我喜欢Matlab向我展示一些平滑而美好的东西,就像ezsurf和wolfram所展示的那样,但我想在同一个图中看到它的两个部分。

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:0)

我认为你的问题只是选择正确的x和y坐标来绘制。

在Wolfram上,x和y都形成-0.5到0.5。在Matlab中这样做可以得到以下结果:

clear
clc

[x,y] = meshgrid(-.5:.01:.5,-.5:.01:.5);

z = 1./(1-x.^2-y.^2);

surf(x,y,z,'FaceColor','interp','EdgeColor','interp')

colormap(jet)
view(30,50);
camlight right

enter image description here

你可以改变观点,但这对我来说很好看:))

答案 1 :(得分:0)

设置您想要绘制的限制:

ezsurf(@f,[-.5,.5],[-.5,.5])

你可能也想要这个:

function z=f(x,y)
z = 1./(1-x.^2-y.^2);
z(z<0)=nan;
end

然后使用ezsurf(@f,[-1,1],[-1,1],'circ')绘图:

enter image description here

ezsurf(@f,[-1,1],[-1,1],'circ')

或没有circ选项

enter image description here