MATLAB 表面图中的间隙

3
我正在尝试使用以下代码在MATLAB中绘制一个圆锥体。然而,当MATLAB生成图形时,表面上会出现一个间隙,如下图所示。有人能否建议一种关闭它的方法?
clearvars; close all; clc;

[theta, r] = meshgrid(-pi:0.1:pi, -4:0.1:6);
x = (r-1).*cos(theta);
y = (r-1).*sin(theta);
z = r;

% 3-D plot
figure
surf(x, y, z);
xlabel("x"); ylabel("y"); zlabel("z");
zlim([0 8]);
axis square

enter image description here

1个回答

4

问题是theta的列表在未达到pi就停止了,因为0.1的增量未达到上限。

例如,您可以使用以下行:

[theta, r] = meshgrid(-pi:(2*pi/20):pi, -4:0.1:6);

完成20步圆形。


linspace通常是一个更简单的选择,如果你的端点比间隔大小更重要。 - Wolfie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接