在网格 MATLAB 中定义函数区域

Define the region offunction in mesh MATLAB

我想在 MATLAB 中为区域 x^2+y^2<=1 绘制 3D 图 z=sqrt(1-x^2-y^2)

clear all;
clc;
x=-1:0.05:1;
y=-1:0.05:1;
[X,Y]=meshgrid(x,y);
Z=sqrt(1-X.^2-Y.^2);
mesh(X,Y,Z);

我不知道如何定义区域x^2+y^2<=1,因为在mesh中我们无法定义功能区域。如何定义?

这是一个解决方案(在 Octave 中测试,但应该在 MATLAB 中工作)。我将 XY 值缩放到单位圆盘中。

clear all;
clc;
x=-1:0.05:1;
y=-1:0.05:1;
[X,Y]=meshgrid(x,y);
R = sqrt(1+(min(abs(X),abs(Y))./max(abs(X),abs(Y))).^2);
R(R==0) = 1;
X = X ./ R;
Y = Y ./ R;
Z = real(sqrt(1-X.^2-Y.^2));
mesh(X,Y,Z);