Если ваша функция 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 на этом графике будет перевернута относительно графика, сгенерированного КОНТУР.
person
gnovice
schedule
24.09.2010