Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Matlab绘制这些3D形状?_Matlab_Plot_3d_Shape - Fatal编程技术网

如何使用Matlab绘制这些3D形状?

如何使用Matlab绘制这些3D形状?,matlab,plot,3d,shape,Matlab,Plot,3d,Shape,我正在尝试使用Matlab创建这些3D形状,以便于演示(请参见下图)。我认为冲浪是我应该使用的功能;但是,我不知道应该使用什么函数来表示这些形状。有人能举个例子吗?谢谢 A 编辑1: 感谢Trogdor和PetrH的回复 目前,我正在尝试绘制一个更尖锐的形状。例如,z=x.^2+y.^2;可以绘制正常的杯形。然而,我想画一些东西,比如下面右边的子图。尝试了几种不同的功能,但不起作用。谢谢你的提示 编辑2: 使用z=x.^2-4*x+y.^2-4*y;可以使形状更平坦。仍然没有一种方法使它锋利

我正在尝试使用Matlab创建这些3D形状,以便于演示(请参见下图)。我认为冲浪是我应该使用的功能;但是,我不知道应该使用什么函数来表示这些形状。有人能举个例子吗?谢谢

A

编辑1:

感谢Trogdor和PetrH的回复

目前,我正在尝试绘制一个更尖锐的形状。例如,z=x.^2+y.^2;可以绘制正常的杯形。然而,我想画一些东西,比如下面右边的子图。尝试了几种不同的功能,但不起作用。谢谢你的提示

编辑2:

使用z=x.^2-4*x+y.^2-4*y;可以使形状更平坦。仍然没有一种方法使它锋利


您可以使用meshgrid生成x和y矩阵以插入z函数。例如:

[x,y] = meshgrid(-10:10);
z = x.^2 + y.^2;
figure;surf(z);
将生成与第一个图形类似的绘图。 第二个图形是相同的,但将z定义为:

z = y.^2;
等等

编辑:第三个图形是鞍座,使用

z = x.^2 - y.^2;
感谢佩特指出这一点

第四个和第五个是前两个的倒数

z = -x.^2;
z = -x.^2 - y.^2;

可以使用meshgrid生成x和y矩阵,以插入z函数。例如:

[x,y] = meshgrid(-10:10);
z = x.^2 + y.^2;
figure;surf(z);
将生成与第一个图形类似的绘图。 第二个图形是相同的,但将z定义为:

z = y.^2;
等等

编辑:第三个图形是鞍座,使用

z = x.^2 - y.^2;
感谢佩特指出这一点

第四个和第五个是前两个的倒数

z = -x.^2;
z = -x.^2 - y.^2;

第三个形状是鞍座,其形状为
z=x.^2-y.^2
。第三个形状是鞍座,其形状为
z=x.^2-y.^2
。Matlab会自动将图形缩放到最佳匹配。请查看限制轴。很抱歉造成混淆,我正在尝试找到一个函数来绘制更尖锐的形状,而不是通过设置轴。因为我不知道怎么做,我通过改变轴显示了一些结果。@Yvon你是对的,我只需要设置z轴!ThanksMatlab会自动将图形缩放到最适合的位置。请查看限制轴。很抱歉造成混淆,我正在尝试找到一个函数来绘制更尖锐的形状,而不是通过设置轴。因为我不知道怎么做,我通过改变轴显示了一些结果。@Yvon你是对的,我只需要设置z轴!谢谢