我想用函数z=sqrt(9-x.^2-y.^2) (x=[-3,3],y=[-3,3])
但是matlab没有绘制情节。
如何绘制具有给定功能的情节?
答案 0 :(得分:0)
Matlab需要meshgrid
将3d数据绘制为曲面。但是,您的函数允许负根,导致z
的结果复杂。任何3d图都无法准确表示这一点。为了更好地查看表面,我建议使用surf(X,Y,z(X,Y))
,但surf
无法处理复杂的输入。
x = -3:0.1:3;
y = x;
[X,Y] = meshgrid(x,y);
z = @(x,y) sqrt(9-x.^2-y.^2);
plot3(X,Y,z(X,Y));
答案 1 :(得分:0)
快速方法是使用fsurf
(在R2016a之前的Matlab版本中使用ezsurf
)或anonymous function。但是,与Dennis Klopfer's answer中的一样,此选项可以比手动创建网格和调用surf
更少控制。
fsurf(@(x,y) sqrt(9-x.^2-y.^2), [-3 3 -3 3])