Определите функцию отключения области в mesh MATLAB

#matlab #plot #matlab-figure

Вопрос:

Я хочу построить 3D-график z=sqrt(1-x^2-y^2) для региона x^2 y^2<=1 в MATLAB.

 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 мы не можем определить область функции. Как это определить?

Ответ №1:

Вот одно решение (протестировано в Октаве, но должно работать в MATLAB). Я масштабирую значения X и Y , чтобы они лежали на едином диске.

 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);
 

введите описание изображения здесь