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