fcontour

Постройте контуры

Описание

пример

fcontour(f) строит линии контура функционального z = f(x,y) для постоянных уровней z на интервале по умолчанию [-5 5] для x и y.

пример

fcontour(f,xyinterval) графики на заданном интервале. Использовать тот же интервал в обоих x и y, задайте xyinterval как двухэлементный вектор формы [min max]. Чтобы использовать различные интервалы, задайте четырехэлементный вектор формы [xmin xmax ymin ymax].

fcontour(___,LineSpec) устанавливает стиль линии и цвет для линий контура. Например, '-r' задает красные линии. Используйте эту опцию после любой из предыдущих комбинаций входных аргументов.

пример

fcontour(___,Name,Value) задает свойства линии с помощью одного или нескольких аргументов пары "имя-значение".

fcontour(ax,___) графики в оси заданы ax вместо текущей системы координат.

пример

fc = fcontour(___) возвращает FunctionContour объект. Используйте fc запросить и изменить свойства определенного FunctionContour объект. Для списка свойств смотрите FunctionContour Properties.

Примеры

свернуть все

Постройте контуры f(x,y)=sin(x)+потому что(y) на интервале по умолчанию -5<x<5 и -5<y<5.

f = @(x,y) sin(x) + cos(y);
fcontour(f)

Задайте интервал графического вывода в качестве второго аргумента fcontour. Когда вы строите несколько входных параметров на различных интервалах в тех же осях, пределы по осям настраивают, чтобы отобразить все данные. Это поведение позволяет вам построить кусочные входные параметры.

Постройте кусочный вход

erf(x)+потому что(y)-5<x<0sin(x)+потому что(y)0<x<5

-5<y<5.

fcontour(@(x,y) erf(x) + cos(y),[-5 0 -5 5])
hold on
fcontour(@(x,y) sin(x) + cos(y),[0 5 -5 5])
hold off
grid on

Постройте контуры x2-y2 как пунктирные линии с шириной линии 2.

f = @(x,y) x.^2 - y.^2;
fcontour(f,'--','LineWidth',2)

График sin(x)+потому что(y) и x-y на тех же осях при помощи hold on.

fcontour(@(x,y) sin(x)+cos(y))
hold on
fcontour(@(x,y) x-y)
hold off

Постройте контуры e-(x/3)2-(y/3)2+e-(x+2)2-(y+2)2. Присвойте функциональный объект контура переменной.

f = @(x,y) exp(-(x/3).^2-(y/3).^2) + exp(-(x+2).^2-(y+2).^2);
fc = fcontour(f)

fc = 
  FunctionContour with properties:

     Function: @(x,y)exp(-(x/3).^2-(y/3).^2)+exp(-(x+2).^2-(y+2).^2)
    LineColor: 'flat'
    LineStyle: '-'
    LineWidth: 0.5000
         Fill: 'off'
    LevelList: [0.2000 0.4000 0.6000 0.8000 1 1.2000 1.4000]

  Show all properties

Измените ширину линии в 1 и стиль линии к пунктирной линии при помощи записи через точку, чтобы установить свойства функционального объекта контура. Покажите контуры близко к 0 и 1 путем установки LevelList свойство. Добавьте шкалу палитры.

fc.LineWidth = 1;
fc.LineStyle = '--';
fc.LevelList = [1 0.9 0.8 0.2 0.1];
colorbar

Создайте график, который похож на закат путем заполнения области между контурами

erf((y+2)3)-e(-0.65((x-2)2+(y-2)2)).

f = @(x,y) erf((y+2).^3) - exp(-0.65*((x-2).^2+(y-2).^2));
fcontour(f,'Fill','on');

Если вы хотите интерполированную штриховку вместо этого, используйте fsurf функция и набор ее 'EdgeColor' опция к 'none' сопровождаемый командой view(0,90).

Установите значения в который fcontour чертит контуры при помощи 'LevelList' опция.

f = @(x,y) sin(x) + cos(y);
fcontour(f,'LevelList',[-1 0 1])

Управляйте разрешением линий контура при помощи 'MeshDensity' опция. Увеличение 'MeshDensity' может сделать более сглаженные, более точные графики, в то время как уменьшение его может увеличить скорость графического вывода.

Разделите фигуру на два использования subplot. В первом подграфике постройте контуры sin(x)sin(y). Углы квадратов не встречаются. Чтобы устранить эту проблему, увеличьте 'MeshDensity' к 200 во втором подграфике. Углы теперь встречаются, показывая это путем увеличения 'MeshDensity' вы увеличиваете разрешение.

f = @(x,y) sin(x).*sin(y);
subplot(2,1,1)
fcontour(f)
title('Default Mesh Density (71)')

subplot(2,1,2)
fcontour(f,'MeshDensity',200)
title('Custom Mesh Density (200)')

График xsin(y)-yпотому что(x). Отобразите линии сетки, добавьте заголовок и добавьте подписи по осям.

fcontour(@(x,y) x.*sin(y) - y.*cos(x), [-2*pi 2*pi], 'LineWidth', 2);
grid on
title({'xsin(y) - ycos(x)','-2\pi < x < 2\pi and -2\pi < y < 2\pi'})
xlabel('x')
ylabel('y')

Установите значения деления оси X и сопоставленные метки путем установки XTickLabel и XTick свойства объекта осей. Доступ к объекту осей с помощью gca. Точно так же установите значения деления оси Y и сопоставленные метки.

ax = gca;
ax.XTick = ax.XLim(1):pi/2:ax.XLim(2);
ax.XTickLabel = {'-2\pi','-3\pi/2','-\pi','-\pi/2','0','\pi/2','\pi','3\pi/2','2\pi'};
ax.YTick = ax.YLim(1):pi/2:ax.YLim(2);
ax.YTickLabel = {'-2\pi','-3\pi/2','-\pi','-\pi/2','0','\pi/2','\pi','3\pi/2','2\pi'};

Входные параметры

свернуть все

Функция, чтобы построить, определенный функцией указатель на именованную или анонимную функцию.

Задайте функцию формы z = f(x,y). Функция должна принять два матричных входных параметра и возвратить матричный выходной аргумент, одного размера. Используйте операторы массивов вместо матричных операторов для лучшей производительности. Например, используйте .* \times) вместо * (mtimes).

Пример: f = @(x,y) sin(x) + cos(y);

Графический вывод интервала для x и y, заданный в одной из следующих форм:

  • Вектор формы [min max] — Используйте интервал [min max] для обоих x и y.

  • Вектор формы [xmin xmax ymin ymax] — Используйте интервал [xmin xmax] для x и [ymin ymax] для y.

Объект осей. Если вы не задаете объект осей, то fcontour использует текущую систему координат.

Стиль линии и цвет, заданный как вектор символов или строка, содержащая спецификатор стиля линии, цветной спецификатор или оба.

Пример: '--r' задает красные пунктирные линии

Эти две таблицы приводят стиль линии и параметры цвета.

Спецификатор стиля линииОписание
-Сплошная линия (значение по умолчанию)
--Пунктирная линия
:Пунктирная линия
-.Штрихпунктирная линия
\color{specifier}Описание

y

желтый

m

пурпурный

c

голубой

r

красный

g

зеленый

b

синий

w

белый

k

черный

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'MeshDensity',30

Перечисленные здесь свойства являются только подмножеством. Для полного списка смотрите FunctionContour Properties.

Количество оценки указывает на направление, заданное как номер. Значением по умолчанию является 71. Поскольку fcontour использует адаптивную оценку, фактическое количество точек оценки больше.

Пример: 30

Заполните между линиями контура, заданными как одно из этих значений:

  • 'off' — Не заполняйте пробелы между линиями контура с цветом.

  • 'on' — Заполните пробелы между линиями контура с цветом.

Очертите уровни, заданные как вектор z значений. По умолчанию, fcontour функция выбирает значения, которые порождают линейную оболочку столбцов значений в ZData свойство.

Установка этого наборы свойств связанное свойство режима к руководству.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Разрядка между линиями контура, заданными как скалярное числовое значение. Например, задайте значение 2 чертить линии контура в шаге 2. По умолчанию, LevelStep определяется при помощи ZData значения.

Установка этого наборы свойств связанное свойство режима к 'manual'.

Пример: 3.4

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Цвет линий контура, заданных как 'flat', триплет RGB, шестнадцатеричный цветовой код, название цвета или краткое название. Чтобы использовать различный цвет в каждой линии контура, задайте 'flat'. Цвет определяется значением контура линии, палитры и масштабирования значений данных в палитру. Для получения дополнительной информации о цветном масштабировании смотрите caxis.

Чтобы использовать тот же цвет во всех линиях контура, задайте триплет RGB, шестнадцатеричный цветовой код, название цвета или краткое название.

Для пользовательского цвета задайте триплет RGB или шестнадцатеричный цветовой код.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; например, [0.4 0.6 0.7].

  • Шестнадцатеричный цветовой код является вектором символов или скаляром строки, который запускается с символа хеша (#) сопровождаемый тремя или шестью шестнадцатеричными цифрами, которые могут лежать в диапазоне от 0 к F. Значения не являются чувствительными к регистру. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' эквивалентны.

Кроме того, вы можете задать имена некоторых простых цветов. Эта таблица приводит опции именованного цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое названиеТриплет RGBШестнадцатеричный цветовой кодВнешний вид
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'Не применяетсяНе применяетсяНе применяетсяНет цвета

Вот являются триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию использованием MATLAB® во многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешний вид
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Ширина линии, заданная как положительное значение в точках, где 1 точка = 1/72 дюйма. Если у линии есть маркеры, ширина линии также влияет на края маркера.

Выходные аргументы

свернуть все

Один или несколько FunctionContour объекты, возвращенные как скаляр или вектор. Можно использовать эти объекты запросить и изменить свойства определенного контурного графика. Для списка свойств смотрите FunctionContour Properties.

Смотрите также

Функции

Свойства

Введенный в R2016a

Для просмотра документации необходимо авторизоваться на сайте