Если ваша функция myFunction
не предназначена для обработки матричных входов, то вы можете использовать функцию ARRAYFUN , чтобы применить ее ко всем соответствующим записям x
и y
:
[x,y] = meshgrid(0:0.5:3); %# Create a mesh of x and y points
z = arrayfun(@myFunction,x,y); %# Compute z (same size as x and y)
Затем вы можете использовать функцию CONTOUR , чтобы сгенерировать контурный график для вышеуказанных данных. Поскольку ваши данные z
имеют только 2 разных значения, вам, вероятно, имеет смысл построить только один уровень контура (который будет иметь значение 0,5, на полпути между вашими двумя значениями). Вместо этого вы можете использовать функцию CONTOURF , которая создает цветные контуры, которые четко покажут, где находятся единицы и нули:
contourf(x,y,z,1); %# Plots 1 contour level, filling the area on either
%# side with different color
ПРИМЕЧАНИЕ: Поскольку вы наносите на график данные, которые имеют только единицы и нули, построение контуров может быть не лучшим способом для его визуализации. Вместо этого я бы использовал что-то вроде функции IMAGESC , например:
imagesc(x(1,:),y(:,1),z);
Имейте в виду, что ось Y на этом графике будет перевернута относительно графика, созданного с помощью CONTOURF .