首页 > 解决方案 > 在网格 MATLAB 中定义函数区域

问题描述

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

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我们无法定义功能区域。如何定义它?

标签: matlabplotmatlab-figure

解决方案


这是一种解决方案(在 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);

在此处输入图像描述


推荐阅读