Ошибка, выдаваемая в командное окно для вашего сценария:
error: mesh: X, Y, Z, C arguments must be real
error: called from
mesh at line 61 column 5
blah at line 15 column 1
Поскольку вы x
и y
действительны, воображаемые образы приходят из квадрата - root числа меньше 0. Глядя на ваше уравнение, это произойдет для любой пары (x
, y
), где x
больше y
.
Самое простое решение - установить все комплексные числа (значения от zz
с ненулевой мнимой частью) до 0 (который будет отображать значение) или NaN (который не будет отображать значение. Рассмотрим этот сценарий (ваш плюс фильтрация):
clear;
x = -3:0.1:3;
y = x;
[xx,yy] = meshgrid(x,y);
zz=sqrt(-9*xx.^2+9*yy.^2);
figure
% Set all zz with nonzero imaginary part to NaN
zz(imag(zz)~=0) = NaN;
% % Set all zz with nonzero imaginary part to 0
% zz(imag(zz)~=0) = 0;
mesh(xx,yy,zz);